sql动态行转列怎么实现

avatar
作者
猴君
阅读量:0

在SQL中,可以使用CASE语句来实现动态行转列。以下是一个示例:

假设有以下表格Student:

IDNameSubjectScore
1AliceMath90
1AliceEnglish85
2BobMath95
2BobEnglish80

我们希望将每个学生的成绩按照科目转为列,得到如下结果:

IDNameMathEnglish
1Alice9085
2Bob9580

可以使用以下SQL语句实现:

SELECT     ID,     Name,     MAX(CASE WHEN Subject = 'Math' THEN Score END) AS Math,     MAX(CASE WHEN Subject = 'English' THEN Score END) AS English FROM Student GROUP BY ID, Name; 

通过CASE语句,将不同科目的成绩转为对应的列,然后使用GROUP BY按照学生的ID和姓名进行分组,最后使用MAX函数获取每个学生在每个科目上的成绩。这样就实现了动态行转列的效果。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!