表的透视变换

将表的行列倒置显示(透视变换)

1)、创建数据表并添加数据

create table Score
(
    学号 nvarchar(10)
    ,课程 nvarchar(10)
    ,成绩 nvarchar(10)
);
insert into Score(学号,课程,成绩)values('0001','语文',87),('0001','数学',79),('0001','英语',95)
,('0002','语文',69),('0002','数学',84);

2)、先查询观察整张表的结构

select * from Score;

 

 3)、先显示要展示的基本的结构

select 学号,'语文','数学','英语'  from Score;

 

 4)、使用case语句,如果课程=语文 则直接显示语文成绩,否则显示0,其他科目同

select 学号
    ,case when 课程='语文' then 成绩 else 0 end as'语文'
    ,case when 课程='数学' then 成绩 else 0 end as'数学'
    ,case when 课程='英语' then 成绩 else 0 end as'英语'
from Score;

 

 5)、从5行变2行,使用分组聚合(按学号分组,各科分组聚合)

select 学号
    ,sum(case when 课程='语文' then 成绩 else 0 end) as'语文'
    ,sum(case when 课程='数学' then 成绩 else 0 end) as'数学'
    ,sum(case when 课程='英语' then 成绩 else 0 end) as'英语'
from Score group by 学号;

posted @   白菜园子呀  阅读(380)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示