是否可以在 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