mysql 动态行转列
来源:互联网 发布:天刀捏脸数据女刘亦菲 编辑:程序博客网 时间:2024/06/07 00:17
前言: mysql的行转列并没有mssql中的pivot
测试数据:
DROP TABLE IF EXISTS `mytest`;CREATE TABLE `mytest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `class` varchar(255) DEFAULT NULL, `score` double DEFAULT NULL, `userid` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;INSERT INTO `mytest` VALUES ('1', 'math', '90', '1');INSERT INTO `mytest` VALUES ('2', 'english', '90', '1');INSERT INTO `mytest` VALUES ('3', 'computer', '80', '1');INSERT INTO `mytest` VALUES ('4', 'sports', '90', '1');INSERT INTO `mytest` VALUES ('5', 'math', '80', '2');INSERT INTO `mytest` VALUES ('6', 'english', '85', '2');INSERT INTO `mytest` VALUES ('7', 'computer', '100', '2');
语句:
SET @EE=''; SELECT @EE:=CONCAT(@EE,'SUM(IF(class=\'',class,'\'',',score,0)) AS ',class,',') FROM (SELECT DISTINCT class FROM mytest) A;SET @QQ=CONCAT('SELECT mytest.userid AS columnA,',LEFT(@EE,LENGTH(@EE)-1),' FROM mytest GROUP BY userid');PREPARE stmt2 FROM @QQ;
PS: 如果将这块sql封装成存储过程,会返回2个结果集,一个sql语句,还有一个查询结果。
所以如果是存储过程的话,推荐这么实用:
#drop PROCEDURE sp_mytestcreate PROCEDURE sp_mytest()begin SET @EE=''; SELECT b.* into @EE from ( SELECT @EE:=CONCAT(@EE,'SUM(IF(class=\'',class,'\'',',score,0)) AS ',class,',') col FROM (SELECT DISTINCT class FROM mytest) A) b ORDER BY b.col desc limit 0,1 ;SET @QQ=CONCAT('SELECT mytest.userid AS columnA,',LEFT(@EE,LENGTH(@EE)-1),' FROM mytest GROUP BY userid');PREPARE stmt2 FROM @QQ;EXECUTE stmt2;endcall sp_mytest()
阅读全文
0 1
- MySQL动态行转列
- MySql 动态行转列整理
- MySql动态行转列
- MySQL 动态行转列
- mysql动态行转列
- mysql动态行转列
- mysql 动态行转列
- mysql 动态行转列
- MYSQL动态行转列
- mysql 动态行转列
- mysql 动态行转列
- 数据库--mysql中动态行转列
- MySQL存储过程的动态行转列
- MySQL存储过程中使用动态行转列
- MySQL存储过程的动态行转列
- MySQL存储过程中使用动态行转列
- MySQL存储过程中使用动态行转列
- mysql动态sql语句
- ionic相关问题记录
- webService测试
- .NET C# 使用DataAdapter 和 DataSet访问数据库实例
- JAVA利用文件IO和List实现简单的管理系统
- Android开发中怎样用多进程、用多进程的好处、多进程的缺陷、解决方法
- mysql 动态行转列
- 常用的三种网络协议
- 专访 | 清华大学朱军:深度学习“盛行”_传统方法何去何从?
- 对POP3,IMAP,SMTP的认识
- stm32 gpio口的工作模式
- 安装部署jasig cas server及相关实践
- 简单的订票系统
- 笔试面试题第一套总结
- 【dubbo】服务运行的三种方式