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

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 就可以了。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。