Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Bedingte WHERE-Klausel mit CASE-Anweisung in Oracle

Sie können das where schreiben Klausel als:

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

Entfernen Sie alternativ das case vollständig:

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

Oder noch besser:

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