Oracle
 sql >> Base de données >  >> RDS >> Oracle

Clause conditionnelle WHERE avec instruction CASE dans Oracle

Vous pouvez écrire le where clause comme :

where (case when (:stateCode = '') then (1)
            when (:stateCode != '') and (vw.state_cd in (:stateCode)) then 1
            else 0)
       end) = 1;

Vous pouvez également supprimer le case entièrement :

where (:stateCode = '') or
      ((:stateCode != '') and vw.state_cd in (:stateCode));

Ou encore mieux :

where (:stateCode = '') or vw.state_cd in (:stateCode)