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

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

相关推荐
江畔何人初几秒前
GTID的作用
linux·运维·服务器·mysql·云原生·kubernetes
倔强的石头1061 分钟前
数据库行标识符机制探究:OID、ROWID与自增主键的实现与应用
数据库·oracle·kingbase
quintin-lee8 分钟前
Postgres 内核:从入门到“入土” (三) —— Page 结构:数据是如何在磁盘上“躺平”的
c语言·数据库·postgresql·数据库架构
gelald11 分钟前
Spring - 事务管理
java·后端·spring
nghxni11 分钟前
LightESB Timer发布:服务级日志与响应编码增强
后端
Southern Wind13 分钟前
AI Skill Server 动态技能中台
前端·后端·mysql·node.js
M建13 分钟前
核心交换机安全实战:内网隔离 + 端口封堵 + 白名单放行全配置
运维·网络安全·交换机
chen_ever17 分钟前
从网络基础到吃透 Linux 高并发 I/O 核心(epoll+零拷贝 完整版)
linux·网络·c++·后端
斌味代码21 分钟前
SpringBoot 3 实战:虚拟线程、全局异常处理与 JWT 鉴权完整方案
java·spring boot·后端
不愿透露姓名的大鹏33 分钟前
MySQL Binlog配置优化全攻略
运维·服务器·数据库·mysql·adb