SQL CASE语句返回重复NA值,如何获取去重后的预期结果
解决SQL中CASE语句返回重复NA的问题
要让处理后的结果只保留一个NA,同时正常显示其他值,核心是对CASE转换后的结果进行去重操作,以下两种方法都能实现:
方法一:使用DISTINCT去重
直接在SELECT后加上DISTINCT关键字,自动过滤重复的结果行:
SELECT DISTINCT CASE WHEN Col1 = 'false' OR Col1 IS NULL THEN 'NA' ELSE Col1 END AS Col1 FROM your_table;
方法二:使用GROUP BY分组
通过分组的方式合并相同的结果值,每组仅返回一行:
SELECT CASE WHEN Col1 = 'false' OR Col1 IS NULL THEN 'NA' ELSE Col1 END AS Col1 FROM your_table GROUP BY Col1;
用你的测试数据运行上述任意一段SQL,都会得到预期的输出:
Col1 ----- NA poor moderate
内容的提问来源于stack exchange,提问作者Anon
相关产品推荐
相关产品推荐

