SQL列转换行的两种方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL列转换行的两种方法相关的知识,希望对你有一定的参考价值。

技术分享技术分享

 

--通过MAX...CASE...WHEN...转换列数据
select Student as 姓名,
MAX(CASE Subject WHEN 语文 THEN Score ELSE 0 END ) AS 语文, --替换Subject列数据为Score列数据
MAX(CASE Subject WHEN 英语 THEN Score ELSE 0 END ) AS 英语 --替换Subject列数据为Score列数据
from Scores
group by Student
order by Student



 SELECT 
    Student as 姓名,
    --通过AVG函数转换语文列
    AVG(语文) as 语文,
    --通过AVG函数转换英语列
    AVG(英语) as 英语
from Scores
--转换英语和语文的数据为Score列对应的数据
pivot( AVG(Score) for Subject in (语文,英语) )as NewScores

group by Student
order by Student asc

 

以上是关于SQL列转换行的两种方法的主要内容,如果未能解决你的问题,请参考以下文章