我们可以不使用ELSE语句来编写CASE语句吗
我有以下查询:
select case when id=1 then 'A'
when id=2 then 'B'
end
from test
它给我的O/P为
ID
A
B
空
空
空
我不想在我的输出中有NULL
值,我只想在A和B中进行比较,在CASE语句中可以吗?
解决方案
case
表达式只能操作表达式的值,不能从结果中删除行。如果要从结果中省略null
,则必须添加where
子句:
SELECT CASE WHEN id = 1 THEN 'A'
WHEN id = 2 THEN 'B'
END
FROM test
WHERE id IN (1, 2) -- HERE
相关文章