博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL行转列与列转行
阅读量:4323 次
发布时间:2019-06-06

本文共 1117 字,大约阅读时间需要 3 分钟。

行转列

例如:把图1转换成图2结果展示

图1 

 

图2

 

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);

  

行转列SQL:

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_gradeGROUP BY USER_NAME;

  

列转行

例如:把图1转换成图3结果展示

图3

 

列转行SQL:

select user_name, '语文' COURSE , CN_SCORE as SCORE from test_tb_grade2union select user_name, '数学' COURSE, MATH_SCORE as SCORE from test_tb_grade2union select user_name, '英语' COURSE, EN_SCORE as SCORE from test_tb_grade2order by user_name,COURSE;

 

【转载自:http://blog.csdn.net/jx_870915876/article/details/52403472】

转载于:https://www.cnblogs.com/ken-jl/p/8570518.html

你可能感兴趣的文章
js遍历Object所有属性
查看>>
再也不学AJAX了!(三)跨域获取资源 ③ - WebSocket & postMessage
查看>>
pycharm设置python文件颜色
查看>>
不换行输出的两种方式
查看>>
贵在坚持不懈
查看>>
hdu 1251 统计难题
查看>>
java中关于String 类型数据 的存储方式
查看>>
javascript中的with语句
查看>>
常用设计模式:装饰者模式
查看>>
python接口自动化--get请求
查看>>
ajax 上传文件
查看>>
lintcode-easy-Flatten Binary Tree to Linked List
查看>>
从远程队列中读取消息
查看>>
typescript 接口的新认识
查看>>
java常见面试题及三大框架面试
查看>>
懒惰的肥兔博文导读
查看>>
[db] mongodb 存取修改简单小实例
查看>>
面试百题003——求子数组的最大和
查看>>
jq.validate 自定义验证两个日期
查看>>
公布一个以前写的随机数生成的方法
查看>>