So che c'è un 'caso quando-then-else', ma controlla solo una condizione alla volta
cosa si sta descrivendo è un caso semplice. Oracle ha due tipi di casi: semplice e ricercato (vedi qui per ulteriori informazioni http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm)
SEMPLICE
case A
when 1 then 'foo'
when 2 then 'bar'
else ..
end
CERCATO
case
when A=1 and B='A' then 'foo'
when D + C =1 and B !='A' then 'Bar'
else ..
end
probabilmente si desidera utilizzare un caso ricercato. Puoi usarli in PL/SQL o SQL. es. in SQL
select ..
from table
where case
when A=1 and B='A' then 'foo'
when D + C =1 and B !='A' then 'Bar'
else ..
end = 'foo'
Le istruzioni CASE di annidamento sono una opzione. Non conosco abbastanza bene Oracle per sapere se c'è un modo migliore però. –
Cosa intendi con _un controllo di una sola condizione alla volta_ Come l'istruzione case dovrebbe aiutare..se non usare la decodifica ma solo i controlli di uguaglianza – asifsid88
Vedere http://stackoverflow.com/questions/14386881/using-if- else-in-oracle – glh