是否可以在 WHEN 更多列中使用 CASE 语句?
Is there possible to use in CASE statement in WHEN more columns?
我想写这样的东西:
case column_01
when column_01 = 5 AND column_02 = 'NO'
then value
else value_other
end
有可能吗?
没有。您必须为每一列写一个案例陈述。
对于 case 语句,您可以检查一个 column/variable 的值并针对该值进行检查:
case column_01
when 1 then 'a'
when 2 then 'b'
...
else 'zzz'
end
或者您检查每个 when 子句中的条件:
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
您不能将这两种形式结合起来,这样做也没有意义。
对于 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
我想写这样的东西:
case column_01
when column_01 = 5 AND column_02 = 'NO'
then value
else value_other
end
有可能吗?
没有。您必须为每一列写一个案例陈述。
对于 case 语句,您可以检查一个 column/variable 的值并针对该值进行检查:
case column_01
when 1 then 'a'
when 2 then 'b'
...
else 'zzz'
end
或者您检查每个 when 子句中的条件:
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
您不能将这两种形式结合起来,这样做也没有意义。
对于 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