在oracle中使用WHEN
时,我们可以在单个CASE
子句中使用多个列吗?
答案 0 :(得分:2)
CASE
表达式可以在 logic 中使用多个列,例如
CASE WHEN col1 > val1 AND col2 > val2 THEN 1 ELSE 0 END
但是CASE
表达式必须返回单个标量值。
答案 1 :(得分:0)
不,你不能,但你可以像这样使用multi when子句:
select
case when .... end col_a,
case when .... end col_b
from
xxxx
答案 2 :(得分:0)
当然可以。例如:
select ...
from emp
where case when bonus is null then salary else salary + bonus end > 4000
此处emp
是一个表格,bonus
和salary
是该表格中的两列。可以更简单地表达相同的WHERE子句,但无论重构如何,它都将引用两列。 (并且会在某处出现某种情况 - NVL和COALESCE是具有不同语法的CASE表达式。)