我想知道是否有可能实现像这样的事情
‘if-else if-else’条件,我知道有一个'case-when-then-else‘条件,但它一次只检查一个条件(如果我理解正确的话)。如何在Oracle sql中实现if-else if-else场景
发布于 2013-02-22 18:52:26
您可以像这样使用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;发布于 2013-02-22 18:53:56
我知道有一个'case-when-then-else‘,但它一次只检查一个条件
您所描述的是一个简单的案例。甲骨文有两种案例类型:简单案例和搜索案例(有关更多信息,请参阅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'发布于 2013-02-22 18:51:47
注意“在Oracle中解码”
decode( expression , search , result [, search , result]... [, default] )它类似于“if-else if-else”
参考:http://www.techonthenet.com/oracle/functions/decode.php
注意:它只做相等性检查。
https://stackoverflow.com/questions/15022392
复制相似问题