成绩表(CHENGJI)如下:
XINGMING | KEMU | CHENGJI | |
1 | 张三 | 语文 | 89.00 |
2 | 张三 | 数学 | 98.00 |
3 | 张三 | 英语 | 88.00 |
4 | 李四 | 语文 | 90.00 |
5 | 李四 | 数学 | 89.00 |
6 | 李四 | 英语 | 60.00 |
7 | 王五 | 数学 | 66.00 |
8 | 王五 | 英语 | 99.00 |
方法一、DECODE
SELECT 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 | 张三 | 89 | 98 | 88 |
2 | 王五 | 0 | 66 | 99 |
3 | 李四 | 90 | 89 | 60 |
方法二、CASE WHEN
SELECT 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 | 张三 | 89 | 98 | 88 |
2 | 王五 | 0 | 66 | 99 |
3 | 李四 | 90 | 89 | 60 |