sql >> Database teknologi >  >> RDS >> Oracle

Betinget WHERE-klausul med CASE-sætning i Oracle

Du kan skrive hvor klausul som:

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

Alternativt kan du fjerne sagen helt:

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

Eller endnu bedre:

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



  1. SQL Server:VÆLG kun rækkerne med MAX(DATE)

  2. Sender xml-strengparameter til SQL Server-lagret procedure

  3. Gå til start testdrevet databaseudvikling (TDDD)

  4. Sådan bruges Udfør øjeblikkelig med INTO-klausul i Oracle-databasen