Questa è una domanda semplice, ho letto alcuni dettagli sull'utilizzo di CASE
nella clausola WHERE
, ma non sono riuscito a farvi un'idea chiara su come utilizzarlo. Il sotto è il mio esempio di query:Oracle case inside where clausola
1 SELECT * FROM dual
2 WHERE (1 =1)
3 AND (SYSDATE+1 > SYSDATE)
4 AND (30 > 40)
5 AND (25 < 35);
Ho un procedimento i_value
come nel parametro. Devo ignorare la quarta riga se i_value è 'S' e devo ignorare la quinta riga se i_value è 'T'.
Grazie in anticipo.
Questo non funzionerà come previsto. Perché se i_value viene passato come 'S', la quarta riga del tuo codice diventa 0 e la condizione fallisce. quindi, l'intera produzione non sarebbe nulla. Dai un'occhiata profonda – ajmalmhd04
Oops: l'ho aggiornato per risolvere il problema. (In precedenza aveva "AND CASE WHEN i_value = 'S' THEN 0 ELSE ..." ha cambiato da 0 a 1 su entrambe le righe 4 e 5. –
ha di nuovo un'occhiata;) – ajmalmhd04