解决方案 »

  1.   

    select t.user_name as 姓名, 
      sum(decode(t.course, '语文', score,null)) as 语文, 
      sum(decode(t.course, '数学', score,null)) as 数学, 
      sum(decode(t.course, '英语', score,null)) as 英语 
    from test_tb_grade t 
    group by t.user_name 
    order by t.user_name
      

  2.   

    select stuid as 学号,name as 姓名,sum(case when subject='语文' then score else 0 end) as 语文,sum(case when subject='数学' then score else 0 end) as 数学,sum(case when subject='英语' then score else 0 end) as 英语from stuscore
    group by stuid,name 已找到答案
      

  3.   

    嗯,这个算不:
    mysql> select id as 序号, name as 名字,
        -> max(case subject WHEN '数学' then score else null end ) 数学,
        -> max(case subject WHEN '语文' then score else null end ) 语文,
        -> max(case subject WHEN '英语' then score else null end ) 英语
        -> from stuscore
        -> where name='张三';
    +------+------+------+------+------+
    | 序号 | 名字 | 数学 | 语文 | 英语 |
    +------+------+------+------+------+
    |    1 | 张三 | 89   | 80   | 70   |
    +------+------+------+------+------+
    1 row in set (0.00 sec)