SQL中的行转列,列转行

embedded/2025/1/15 23:25:03/

SQL中的行列转换

1. 导入

有这样两张表,这两张表如何互相转换

student_table
在这里插入图片描述
score_table
在这里插入图片描述

2. 行转列

使用 UNION ALL

sql">-- 行转列
SELECT name,'语文' as subject,chinese_score as score
FROM student_table
UNION ALL
SELECT name,'数学' as subject,math_score as score
FROM student_table
UNION ALL
SELECT name,'英语' as subject,english_score as score
FROM student_table

注:union ,union all 的区别是union可以去重,确定不会重复的数据,使用 union all 的性能会高一些

3. 列转行

sql">-- 列转行
SELECT name,
MAX(CASE WHEN subject = '语文' THEN score ELSE 0 END)as chinese_score,
MAX(CASE WHEN subject = '数学' THEN score ELSE 0 END)as math_score,
MAX(CASE WHEN subject = '英语' THEN score ELSE 0 END)as english_score
FROM score_table
GROUP BY name

总结

列转行: case when…then…else…end + Group By + MAX取值
行转列: 使用UNION拼接多个查询结果


http://www.ppmy.cn/embedded/154232.html

相关文章

微信小程序 实现拼图功能

微信小程序 实现拼图 效果示例功能描述代码示例 效果示例 微信小程序 碎片拼图 功能描述 在微信小程序中,实现一个简单的拼图小游戏。用户需要将四张碎片图片拖动到目标图片的正确位置,具体功能如下: 拖动功能: 用户可以通过手指…

react生命周期方法

一、挂载阶段 constructor:组件的构造函数,初始化state。statiic getDerivedStateFromProps:在组件实例被创建和更新之前调用,返回一个对象来更新state。render:渲染组件的UI。componentDidMount组件挂载完成后调用,通常用于发起…

华为2024嵌入式研发面试题

01 你认为最好的排序算法是什么? 在实际的编程中,最好的排序算法要根据实际需求和数据规模来选择,因为每种排序算法都有其优势和劣势。以下是一些常见排序算法及其优缺点: 冒泡排序 冒泡排序是一种简单直观的排序算法&#xff0…

c#-Halcon入门教程——标定

Halcon代码 read_image (NinePointCalibration, D:/Desktop/halcon/ca74d-main/九点标定/NinePointCalibration.gif)rgb1_to_gray (NinePointCalibration, GrayImage)get_image_size (GrayImage, Width, Height) dev_display (GrayImage)* 获取当前显示的窗口句柄 dev_get_win…

Linux IPC:管道与FIFO汇总整理

管道(Pipes)和先进先出(FIFOs,也称为命名管道)都是Linux中用于进程间通信(IPC)的机制。它们允许数据从一个进程流向另一个进程,类似于命令行中的管道操作符 |。下面详细介绍这两种机…

神经网络

“损失函数 王木头学科学-哔哩哔哩_bilibili 一、transformer和注意力机制的本质,以及编码和解码的结构及其与注意力机制的关系,帮助理解transformer的优势和应用场景。 00:01 - 介绍transformer是人工智能主流技术,大语言模型GBT是在其基础…

宁德时代C++后端开发面试题及参考答案

请阐述面向对象的三大特性。 面向对象编程有三大特性,分别是封装、继承和多态。 封装是指将数据和操作数据的方法绑定在一起,对数据的访问和操作进行限制。这样做的好处是可以隐藏对象的内部细节,只暴露必要的接口给外部。例如,我们可以把一个汽车类的内部引擎状态、速度等…

macOS 如何终止端口占用的进程 ?

您是否遇到过这样的情况:您试图在 Mac 上启动服务器或服务,却被告知端口已被占用?当您试图使用的端口被另一个进程占用时,就会出现此问题。在本教程中,我们将指导您完成在 macOS 上识别和终止这些进程的步骤&#xff0…