sql server如何把查询的多行记录显示在一行上面:
例如下面的学生成绩表,想把多个学科的成绩显示在一列上面

sql server如何把查询的多行记录显示在一行上面
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qq_26007951 2022-11-10 07:54关注
--行列转置
select 学号='1',姓名='张三',课程='语文',成绩='99'
into #base1
union
select 学号='1',姓名='张三',课程='数学',成绩='105'
union
select 学号='2',姓名='李四',课程='语文',成绩='99'
union
select 学号='2',姓名='李四',课程='数学',成绩='105'
union
select 学号='2',姓名='李四',课程='外语',成绩='110'
union
select 学号='3',姓名='王五',课程='语文',成绩='89'
union
select 学号='3',姓名='王五',课程='数学',成绩='130'
union
select 学号='3',姓名='王五',课程='外语',成绩='89'
union
select 学号='3',姓名='王五',课程='物理',成绩='80'
union
select 学号='3',姓名='王五',课程='历史',成绩='85'select * from #base1
select 学号,姓名,[语文],[数学],[外语],[物理],[历史] from #base1
pivot(max(成绩) for 课程 in ([语文],[数学],[外语],[物理],[历史]))pvt本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报