当前位置: 首页 > article >正文

SQL中的行转列,列转行

SQL中的行列转换

1. 导入

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

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

2. 行转列

使用 UNION ALL

-- 行转列
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. 列转行

-- 列转行
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.kler.cn/a/504406.html

相关文章:

  • 第R4周:LSTM-火灾温度预测
  • FPGA的 基本结构(Xilinx 公司Virtex-II 系列FPGA )
  • 【ArcGIS初学】产生随机点计算混淆矩阵
  • 《使用 YOLOV8 和 KerasCV 进行高效目标检测》
  • GitLab CI/CD使用runner实现自动化部署前端Vue2 后端.Net 7 Zr.Admin项目
  • vue2修改表单只提交被修改的数据的字段传给后端接口
  • 一些常见的Java面试题及其答案
  • 网络攻击行为可视化分析系统【数据分析 + 可视化】
  • CSS | 实现三列布局(两边边定宽 中间自适应,自适应成比)
  • HTML文章翻页功能
  • 【已解决】【记录】2AI大模型web UI使用tips 本地
  • 阿里云直播Web
  • MTK6768 Android13 亮度条均匀调节实现
  • 一套UI精美、控件丰富、多主题的WinForm开源界面库
  • 【Uniapp-Vue3】pages设置页面路径及窗口表现
  • 寒假规划(服创比赛)
  • Nginx 访问状态统计功能配置与使用方法(status)
  • 【Docker】Docker与Docker compose离线安装
  • 宜自动化处理的五件事
  • PyTorch 时间序列与信号处理全解析:从预测到生成
  • 力扣 子集
  • uni-app h5修改浏览器导航栏的 title以及icon
  • 近红外数据预处理和简单分析matlab
  • 3、Go中的注释
  • 隐私计算,构建安全的未来数据空间
  • Docker Desktop 中安装 MySQL 并开启远程访问的详细教程