您的位置:首页 > 数据库 > Oracle

ORACLE 分组之后容易被忽略的bug

2014-12-19 19:28 183 查看
COL_2 COL_3
21 31
23 31

如上表数据

前台显示显示需要把COL_2的21和23转换成中文 ‘整机’ 最开始如下编写

SELECT t.col_3,
CASE t.col_2
WHEN 21 THEN
‘整机’
WHEN 23 THEN
‘整机’
END
FROM a_test_1 t
GROUP BY t.col_3,t.col_2

得到的结果如下:

31 整机
31 整机

客户想看的其实是一条数据,则可以改为如下:

SELECT t.col_3,
CASE t.col_2
WHEN 21 THEN
'整机'
WHEN 23 THEN
'整机'
END
FROM a_test_1 t
WHERE t.col_3 = 31
GROUP BY t.col_3,
CASE t.col_2
WHEN 21 THEN
'整机'
WHEN 23 THEN
'整机'
END

把case语句放入group by 就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: