SQLServer列转行操作及union all用法

1.创建测试表及数据sql如下

create table ScoresTable(

Name varchar(50),

ChineseScore int,

MathScore int

)

insert into ScoresTable values('小张',90,95)

insert into ScoresTable values('小王',98,99)

2.表中查询结果如下

3.现需列转行显示,每行显示 姓名,科目,成绩

实现sql如下:

select * from

(

select Name, Subject ='语文',Scores=ChineseScore from ScoresTable

union all

select Name, Subject ='数学',Scores=MathScore from ScoresTable

) t

order by Name ,Subject

运行结果如下,实现了列转行

相关推荐
云恒要逆袭3 分钟前
Hello World背后的秘密:Java程序是这样运行的
java·后端·程序员
蝎子莱莱爱打怪7 分钟前
XZLL-IM干货系列 01|万字拆解分布式 IM 架构:7 个微服务 + 自研 Flutter SDK
java·后端·面试
计算机安禾7 分钟前
【数据库系统原理】第9篇:SQL的结构化思维:DDL、DML与DCL的职责分离
数据库·sql·oracle
计算机安禾11 分钟前
【数据库系统原理】第12篇:视图机制:外模式在SQL层级的逻辑数据独立性实现
数据库·sql·oracle
你是个什么橙12 分钟前
Linux 远程桌面访问和管理——VNC服务器
linux·运维·服务器
nhfc9913 分钟前
whisper.cpp编译
linux·运维·服务器
前进的李工15 分钟前
MySQL性能优化:索引与子查询实战技巧
数据库·sql·mysql·性能优化
疯狂成瘾者23 分钟前
API Key 生成和鉴权机制:从随机凭证生成到请求拦截校验
数据库·oracle
深圳恒讯29 分钟前
越南服务器 ping 值多少?
运维·服务器
Volunteer Technology36 分钟前
SpringSecurity中的权限管理
java·数据库·servlet