17,086
社区成员
发帖
与我相关
我的任务
分享
SQL> with t as (select '张三' name, '语文' course, 80 grade from dual
2 union all select '张三' ,'数学', 90 from dual
3 union all select '张三' ,'物理', 85 from dual
4 union all select '李四' ,'语文', 85 from dual
5 union all select '李四' ,'数学', 92 from dual
6 union all select '李四' ,'物理', 82 from dual)
7 select t.name "姓名",max(decode(course,'语文',grade)) "语文",max(decode(course,'数学',grade))
数学",
8 max(decode(course,'物理',grade)) "物理"
9 from t
10 group by t.name;
姓名 语文 数学 物理
---- ---------- ---------- ----------
李四 85 92 82
张三 80 90 85