对于有些业务来说,数据在表中的存储和其最终的表现恰好相当于把源表倒转,那么这个时候我们就碰到了如何把行转化为列的问题,为了简化问题,我们且看如下查询出来的数据,您不必关心表的设计以及sql语句:

  源表如下:(表名为info)

     sql server行转列的一种实现方法

 

------------------------------------------------------------------------

  select username,   

     语文=(case course when '语文' then grade else 0 end),   

     数学=(case course when '数学' then grade else 0 end),    

      政治=(case course when '政治' then grade else 0 end

  from info

  看看我们的执行结果:

  sql server行转列的一种实现方法

 看到这后,我们都知道应该做什么了,进行分组,按姓名进行分组,并且对三门课程分别求和;

------------------------------------------------------------------------ 

  目标结果:

      sql server行转列的一种实现方法

 

  SQL语句为:  

select username,
   语文=sum(case course when '语文' then grade else 0 end),
   数学=sum(case course when '数学' then grade else 0 end),
   政治=sum(case course when '政治' then grade else 0 end)
from info group by username

    select username,   

         语文=sum(case course when '语文' then grade else 0 end),  

         数学=sum(case course when '数学' then grade else 0 end),   

        政治=sum(case course when '政治' then grade else 0 end)

    from info

    group by username

 

 

相关文章:

  • 2021-10-07
  • 2021-06-26
  • 2022-12-23
  • 2021-09-27
  • 2021-09-22
  • 2022-12-23
  • 2022-12-23
  • 2021-05-29
猜你喜欢
  • 2022-12-23
  • 2021-07-30
  • 2021-09-30
  • 2021-06-05
  • 2022-02-20
  • 2022-12-23
  • 2019-08-06
相关资源
相似解决方案