日期:2014-05-17  浏览次数:20864 次

编写sql语句
有一张student表
姓名  科目  成绩
小明  数学  50
小明  语文  60
小明  外语  70
小黑  数学  80
小黑  语文  90
小黑  外语  100

写一条sql语句变成
姓名  数学  语文  外语
小明  50    60    70
小黑  80    90    100
SQL

------解决方案--------------------
刚学oracle吧?这是最简单的行列转换了。

select t.姓名,
       sum(decode(t.科目, '数学', t.成绩, 0)) 数学,
       sum(decode(t.科目, '语文', t.成绩, 0)) 语文,
       sum(decode(t.科目, '外语', t.成绩, 0)) 外语
  from student t
  group by t.姓名;