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

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

相关推荐
Victor3566 小时前
Hibernate(35)什么是Hibernate的聚合函数?
后端
alonewolf_996 小时前
MySQL 架构与SQL执行全流程深度解析
sql·mysql·架构
MXM_7776 小时前
laravel 并发控制写法-涉及资金
java·数据库·oracle
进阶的小名6 小时前
[超轻量级消息队列(MQ)] Redis 不只是缓存:我用 Redis Stream 实现了一个 MQ(自定义注解方式)
数据库·spring boot·redis·缓存·消息队列·个人开发
列御寇6 小时前
MongoDB分片集群——分片键(Shard Keys)概述
数据库·mongodb
小杜今天学AI了吗6 小时前
如何配置 linux 系统的conda 环境
linux·运维·conda
oMcLin6 小时前
如何在Ubuntu 22.04 LTS上通过配置ZFS存储池,提升高吞吐量数据库的读写性能与可靠性?
linux·数据库·ubuntu
何中应6 小时前
@Autowrited和@Resource注解的区别及使用场景
java·开发语言·spring boot·后端·spring
源代码•宸6 小时前
Golang语法进阶(Context)
开发语言·后端·算法·golang·context·withvalue·withcancel
christine-rr6 小时前
linux常用命令(9)——查看系统与硬件信息
linux·运维·服务器·网络·后端