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

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

相关推荐
Bert.Cai9 分钟前
Linux let命令详解
linux·运维·服务器
枕星而眠13 分钟前
Linux 线程:原理、属性、实战与面试避坑
linux·运维·c语言·面试
晚风予卿云月17 分钟前
【Linux】环境变量概念、作用、配置与修改详解
linux·运维·服务器·环境变量
A XMan.29 分钟前
域名Whois信息查询V2版API接入指南
数据库
heimeiyingwang30 分钟前
【架构实战】可观测性体系:从监控到全链路追踪
网络·数据库·架构
网管NO.134 分钟前
SQL 日期函数全套精讲!时间格式化、日期加减、年月日提取,做日报周报直接套用
数据库·sql
~黄夫人~37 分钟前
零基础速通|Windows&Linux 常用命令行对照表大全
linux·运维·windows·笔记·备忘录·整理表格
benjiangliu40 分钟前
LINUX系统-17-EXT系列文件系统(二)
linux·运维·服务器
杨云龙UP41 分钟前
Linux 根分区被日志吃满?一次 58G Broker 日志清理实战_2026-05-20
linux·运维·服务器·数据库·hdfs·apache
sdk大全43 分钟前
Studio 3T for MongoDB 2025.13.0
数据库·mongodb