mysql行转列(更新版)

推荐使用 if 的语句:
if(想变成行的列名 = ‘列的值’,另一个列名) ‘给这个字段取别名’

建表语句

create table test (Date varchar(10), item char(10),saleqty int);
insert test values('2010-01-01','AAA',8);
insert test values('2010-01-02','AAA',4);
insert test values('2010-01-03','AAA',5);
insert test values('2010-01-01','BBB',1);
insert test values('2010-01-02','CCC',2);
insert test values('2010-01-03','DDD',6);

在这里插入图片描述

SELECT * ,
case item when 'AAA' THEN saleqty ELSE 0 end as A,
case item when 'BBB' THEN saleqty ELSE 0 end as B,
case item when 'CCC' THEN saleqty ELSE 0 end as C
FROM TEST 

在这里插入图片描述

select *,
if(item = 'AAA',saleqty,0) 'A',
if(item = 'BBB',saleqty,0) 'B',
if(item = 'CCC',saleqty,0) 'C'
FROM TEST

在这里插入图片描述

select *,
max(if(item = 'AAA',saleqty,0)) 'A',
max(if(item = 'BBB',saleqty,0) )'B',
max(if(item = 'CCC',saleqty,0) )'C'
FROM TEST

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45393723/article/details/116018442