数据库--mysql中动态行转列

create table table1(
 col1 char(2),
 col2 char(2),
 col3 int
);




insert into table1 values
('A1','B1',9),
('A2','B1',7),
('A3','B1',4),
('A4','B1',2),
('A1','B2',2),
('A2','B2',9),
('A3','B2',8),
('A4','B2',5),
('A1','B3',1),
('A2','B3',8),
('A3','B3',8),
('A4','B3',6),
('A1','B4',8),
('A2','B4',2),
('A3','B4',6),
('A4','B4',9),
('A1','B4',3),
('A2','B4',5),
('A3','B4',2),

('A4','B4',5);




SET @EE='';
SELECT @EE:=CONCAT(@EE,'SUM(IF(col2=\'',col2,'\'',',col3,0)) AS ',col2,',') FROM table1  order by col4) A;
SET @QQ=CONCAT('SELECT ifnull(col1,\'total\') AS sitc4,',LEFT(@EE,LENGTH(@EE)-1),'  FROM  table1  GROUP BY col1 WITH ROLLUP');
PREPARE stmt2 FROM @QQ;
EXECUTE stmt2;



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值