Oracle 行转列 Case When,Decode两种方式
成绩表(CHENGJI)如下:
???XINGMINGKEMUCHENGJI? 1? 2? 3? 4? 5? 6? 7? 8SELECT CJ.XINGMING, SUM(DECODE(CJ.KEMU, '语文', CJ.CHENGJI, 0)) 语文, SUM(DECODE(CJ.KEMU, '数学', CJ.CHENGJI, 0)) 数学, SUM(DECODE(CJ.KEMU, '英语', CJ.CHENGJI, 0)) 英语 FROM CHENGJI CJ GROUP BY CJ.XINGMING???XINGMING语文数学英语? 1? 2? 3SELECT CJ.XINGMING, SUM( CASE WHEN CJ.KEMU = '语文' THEN CJ.CHENGJI ELSE 0 END ) 语文, SUM( CASE WHEN CJ.KEMU = '数学' THEN CJ.CHENGJI ELSE 0 END ) 数学, SUM( CASE WHEN CJ.KEMU = '英语' THEN CJ.CHENGJI ELSE 0 END ) 英语 FROM CHENGJI CJ GROUP BY CJ.XINGMING????XINGMING语文数学英语? 1? 2? 3李四908960