if-elseif-else 'condition' в oracle SQL

Мне интересно, если есть возможность достичь чего-то вроде

'if-elseif-else', я знаю, что есть «case-when-then-else», но он проверяет только одно условие за раз (если я правильно понимаю). Как я могу реализовать сценарий if-elseif-else в Oracle sql

Вы можете использовать if / else, используя инструкции case, подобные этому.

SELECT ename, CASE WHEN sal = 1000 THEN 'Minimum wage' WHEN sal > 1000 THEN 'Over paid' ELSE 'Under paid' END AS "Salary Status" FROM emp; 

я знаю, что есть «case-when-then-else», но он проверяет только одно условие за раз

То, что вы описываете, является ПРОСТОЙ. Oracle имеет два типа case: SIMPLE и SEARCHED (см. Здесь дополнительную информацию http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm )

ПРОСТО

 case A when 1 then 'foo' when 2 then 'bar' else .. end 

ИСКАЛИ

 case when A=1 and B='A' then 'foo' when D + C =1 and B !='A' then 'Bar' else .. end 

вы, вероятно, захотите использовать найденный случай. Вы можете использовать их в PL / SQL или SQL. например, в 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' 

Следите за «Декодированием в Oracle»

 decode( expression , search , result [, search , result]... [, default] ) 

Он похож на «if-elseif-else»,

См .: http://www.techonthenet.com/oracle/functions/decode.php

ПРИМЕЧАНИЕ. Он выполняет только проверки равенства.