有没有可能在CASE语句中使用更多的WHEN列?
我想写的东西是这样的:有没有可能在CASE语句中使用更多的WHEN列?
case column_01
when column_01 = 5 AND column_02 = 'NO'
then value
else value_other
end
是它在某种程度上可能吗?
您已经混合了两种不同的语法对于CASE表达式。
你会做得一样:
CASE
WHEN column_01 = 5 AND column_02 = 'NO' THEN
value
ELSE
value_other
1 simple_case_statement
CASE [ expression ]
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
...
WHEN condition_n THEN result_n
ELSE result
END
2. searched_case_statement
CASE
WHEN expression condition_1 THEN result_1
WHEN expression condition_2 THEN result_2
...
WHEN expression condition_n THEN result_n
ELSE result
END
哦,我明白了! 非常感谢! :)) – Yte 2015-04-02 09:30:25
不客气! – 2015-04-02 09:34:33
或者:when(column_01,column_02)=((5,'NO'))then ...' – 2015-09-07 11:37:12
不可以。您必须为每列写一个case语句。
随着case语句,你要么检查一列/变量的值,做你检查针对:
case column_01
when 1 then 'a'
when 2 then 'b'
...
else 'zzz'
end
或您检查每个条件时,子句:
case when column_01 = 5 and column_02 = 'NO' then value
when column_01 = 10 and column_03 = 'FRED' then 123
else value_other
end
你不能把这两种形式结合起来,这样做也没有意义。
您在这里混合两种不同情况的版本。 – jarlh 2015-04-02 08:59:51
你可以在这里找到一些额外的信息http://www.oracle-developer.net/display.php?id=206 – michaos 2015-04-02 09:18:43