譬如:
select * from student;姓名   科目    成绩
小强   语文    80
小强   数学    77
小美   语文    80
小美   数学    90怎样将相同姓名的能汇聚成一条:姓名   科目  成绩   科目   成绩
小强   语文   80    数学    77
小美   语文   80    数学    90  

解决方案 »

  1.   

    select 姓名,group_concat(科目,成绩)
    from tt group by 姓名
      

  2.   

    对不起,我用的是postgresql,group_concat是mysql的函数啊
      

  3.   

    请问有通用的sql语句可以将它们连接起来吗?
      

  4.   

    可以用LEFT JOIN,会出现重复的记录,要增加一个唯一标识的字段
      

  5.   

    select a.姓名,a.科目,a.成绩,b..科目,b.成绩
    from student a inner join student b
    on a.姓名=b.姓名
    and a.科目= '语文'
    and b.科目= '数学'
      

  6.   

    select 姓名,
    '语文' as 科目1,sum(IF(科目='语文',成绩,0) as 成绩1,
    '数学' as 科目2,sum(IF(科目='数学',成绩,0) as 成绩2
    from student
    group by 姓名