首页 > 代码库 > SQL行转列

SQL行转列

如图:

源表:

转换之后的结果:

SQL语句:

SELECT
姓名,
MAX(CASE WHEN 课程=‘语文‘ THEN 分数 else 0 end) ‘语文‘,
MAX(CASE WHEN 课程=‘数学‘ THEN 分数 else 0 end) ‘数学‘,
MAX(CASE WHEN 课程=‘物理‘ THEN 分数 else 0 end) ‘物理‘

FROM dbo.yyb_scores

GROUP BY 姓名

 

===========

select* from yyb_scores pivot( max(分数) for 课程 in (语文,数学,物理) ) a  特殊语法  

===========

 

SQL行转列