我有这个查询:
select case when id=1 then 'A'
when id=2 then 'B'
end
from test
它给了我 o/p 作为
ID
一个
乙
无效的
无效的
无效的
我不想在我的输出中有 NULL
值,我只想在 A 和 B 中进行比较,是否可以在 case 语句中进行比较。
原文由 Red Devil 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有这个查询:
select case when id=1 then 'A'
when id=2 then 'B'
end
from test
它给了我 o/p 作为
ID
一个
乙
无效的
无效的
无效的
我不想在我的输出中有 NULL
值,我只想在 A 和 B 中进行比较,是否可以在 case 语句中进行比较。
原文由 Red Devil 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 WHERE
子句来限制输出。
SELECT CASE WHEN id=1 THEN 'A'
WHEN id=2 THEN 'B'
END
FROM test
WHERE id IN (1,2)
或者,如果您想展示一些其他值而不是 null
在 CASE
语句中使用 else
部分。
SELECT CASE WHEN id=1 THEN 'A'
WHEN id=2 THEN 'B' ELSE 'Invalid'
END
FROM test
原文由 Unnikrishnan R 发布,翻译遵循 CC BY-SA 3.0 许可协议
1 回答2.4k 阅读✓ 已解决
2 回答3.4k 阅读
1 回答2.3k 阅读
case
表达式只能操作表达式的值,不能从结果中删除行。如果要从结果中省略null
s,则必须添加where
子句: