sql >> Databasteknik >  >> RDS >> Oracle

Villkorlig WHERE-sats med CASE-sats i Oracle

Du kan skriva var 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 ta bort case helt och hållet:

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

Eller ännu bättre:

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



  1. Hur man använder kommentarsfunktionen på bästa sätt i MySQL

  2. Record-baserad infogning och uppdatering i Oracle

  3. Hur man installerar Cassandra v3 på CentOS 6

  4. Kardinalitetsuppskattning för ett predikat på ett COUNT-uttryck