我有这个问题:
select case when id=1 then 'A'
when id=2 then 'B'
end
from test
它正在给我o / p
标识
一个
乙
NULL
NULL
NULL
我不希望在输出中有NULL
个值,我只想在A和B中进行比较,是否可以在case语句中使用。
答案 0 :(得分:6)
case
表达式只能操作表达式的值,而不能从结果中删除行。如果要从结果中省略null
s,则必须添加where
子句:
SELECT CASE WHEN id = 1 THEN 'A'
WHEN id = 2 THEN 'B'
END
FROM test
WHERE id IN (1, 2) -- HERE
答案 1 :(得分:1)
您可以使用WHERE
子句来限制输出。
SELECT CASE WHEN id=1 THEN 'A'
WHEN id=2 THEN 'B'
END
FROM test
WHERE id IN (1,2)
或者,如果您想展示其他值而不是null
,请在else
语句中使用CASE
部分。
SELECT CASE WHEN id=1 THEN 'A'
WHEN id=2 THEN 'B' ELSE 'Invalid'
END
FROM test
答案 2 :(得分:0)
给你:
select case when id=1 then 'A'
when id=2 then 'B'
end
from test
where id is not null
或者这个:
select case when id=1 then 'A'
when id=2 then 'B'
end
from test
where id <> null