sql >> Base de Datos >  >> RDS >> Oracle

Cláusula condicional WHERE con declaración CASE en Oracle

Puedes escribir el where cláusula como:

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

Alternativamente, elimine el case completamente:

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

O, mejor aún:

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