如何正确地将sql行转换为列?

nimxete2  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(268)

在有人提到它之前,我已经在堆栈上看到了完全相同的sql问题,从我的Angular 来看,这实际上是将列转换为行。我试图完成的是,如下面的照片所示,鉴于上面的一张,我想用以前的数据创建一个新表,从这个意义上说,它是翻转的。

zpjtge22

zpjtge221#

可以使用条件聚合和 union all 具体如下:

select name_new, 
       max(case when name = 'PersonA' then A end) as PersonA,
       max(case when name = 'PersonB' then A end) as PersonB,
       max(case when name = 'PersonC' then A end) as PersonC
from 
(select name, 'A1' name_new, A1 A from mytable union all
select name, 'A2' name_new, A2 A from mytable union all
select name, 'A3' name_new, A3 A from mytable union all
select name, 'A4' name_new, A4 A from mytable ) t
group by name_new

sqlfiddle公司

相关问题