mysql 行转列和列转行实例详解
发布时间 - 2026-01-11 00:18:52 点击率:次mysql行转列、列转行

语句不难,不做多余解释了,看语句时,从内往外一句一句剖析
行转列
有如图所示的表,现在希望查询的结果将行转成列
建表语句如下:
CREATE TABLE `TEST_TB_GRADE` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(20) DEFAULT NULL, `COURSE` varchar(20) DEFAULT NULL, `SCORE` float DEFAULT '0', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
insert into TEST_TB_GRADE(USER_NAME, COURSE, SCORE) values
("张三", "数学", 34),
("张三", "语文", 58),
("张三", "英语", 58),
("李四", "数学", 45),
("李四", "语文", 87),
("李四", "英语", 45),
("王五", "数学", 76),
("王五", "语文", 34),
("王五", "英语", 89);
查询语句:
此处用之所以用MAX是为了将无数据的点设为0,防止出现NULL
SELECT user_name , MAX(CASE course WHEN '数学' THEN score ELSE 0 END ) 数学, MAX(CASE course WHEN '语文' THEN score ELSE 0 END ) 语文, MAX(CASE course WHEN '英语' THEN score ELSE 0 END ) 英语 FROM test_tb_grade GROUP BY USER_NAME;
结果展示:
列转行
有如图所示的表,现在希望查询的结果将列成行
建表语句如下:
CREATE TABLE `TEST_TB_GRADE2` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(20) DEFAULT NULL, `CN_SCORE` float DEFAULT NULL, `MATH_SCORE` float DEFAULT NULL, `EN_SCORE` float DEFAULT '0', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
insert into TEST_TB_GRADE2(USER_NAME, CN_SCORE, MATH_SCORE, EN_SCORE) values
("张三", 34, 58, 58),
("李四", 45, 87, 45),
("王五", 76, 34, 89);
查询语句:
select user_name, '语文' COURSE , CN_SCORE as SCORE from test_tb_grade2 union select user_name, '数学' COURSE, MATH_SCORE as SCORE from test_tb_grade2 union select user_name, '英语' COURSE, EN_SCORE as SCORE from test_tb_grade2 order by user_name,COURSE;
结果展示:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# mysql行转列、列转行
# mysql行转列与列转行的实现代码
# mysql 行列动态转换的实现(列联表
# 交叉表)
# mysql 列转行的技巧(分享)
# mysql 列转行
# 合并字段的方法(必看)
# MySQL 中行转列的方法
# 一文弄懂MYSQL如何列转行
# MySQL实现行列转换
# mysql列转行方法超详细讲解
# 搞定mysql行转列的7种方法以及列转行
# MySQL中实现行列转换的操作示例
# MySQL动态列转行的实现示例
# 英语
# 李四
# 王五
# 一句
# 如图所示
# 设为
# 希望能
# 不做
# 谢谢大家
# 往外
# 转成
# 是为了
# 无数据
# ID
# TEST_TB_GRADE
# SCORE
# DEFAULT
# NULL
# AUTO_INCREMENT
# USER_NAME
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
jQuery validate插件功能与用法详解
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
如何在阿里云ECS服务器部署织梦CMS网站?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
Laravel如何发送系统通知?(Notification渠道示例)
利用 Google AI 进行 YouTube 视频 SEO 描述优化
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel如何使用withoutEvents方法临时禁用模型事件
个人网站制作流程图片大全,个人网站如何注销?
企业网站制作这些问题要关注
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
如何快速搭建虚拟主机网站?新手必看指南
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
如何将凡科建站内容保存为本地文件?
如何快速启动建站代理加盟业务?
Laravel如何创建自定义Facades?(详细步骤)
高端建站三要素:定制模板、企业官网与响应式设计优化
高端建站如何打造兼具美学与转化的品牌官网?
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
如何用y主机助手快速搭建网站?
nginx修改上传文件大小限制的方法
微信公众帐号开发教程之图文消息全攻略
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
,怎么在广州志愿者网站注册?
Laravel如何使用Eloquent进行子查询
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
HTML 中如何正确使用模板变量为元素的 name 属性赋值
详解CentOS6.5 安装 MySQL5.1.71的方法
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
如何快速上传建站程序避免常见错误?
Python高阶函数应用_函数作为参数说明【指导】
常州企业网站制作公司,全国继续教育网怎么登录?
js实现点击每个li节点,都弹出其文本值及修改
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
如何在七牛云存储上搭建网站并设置自定义域名?
如何在局域网内绑定自建网站域名?
如何获取免费开源的自助建站系统源码?
Laravel如何实现API资源集合?(Resource Collection教程)
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
EditPlus中的正则表达式 实战(4)

