成绩表(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 |