fightforjava 发表于 2013-2-5 01:15:27

sql转换表结构

现有如下表结构和数据:(表名为course)


name      subject   grade
张三          语文        20
张三          数学        30
张三          英语        60
李四          语文        40
李四          数学        90
李四          英语        100


如何用SQL语句查询出如下结构的结果:
姓名    语文     数学     英语
张三     20       30       60
李四     40       90       100


答案:
select distinct t.name 姓名,t1.grade 语文,t2.grade 数学,t3.grade 英语
     from course t,

         (select c.name,c.grade from course c where c.subject='语文')t1,
         (select c.name,c.grade from course c where c.subject='数学')t2,
         (select c.name,c.grade from course c where c.subject='英语')t3
     where t.name=t1.name
        and t.name = t2.name
        and t.name = t3.name
 
 
 
 
页: [1]
查看完整版本: sql转换表结构