SQL 行转列

先有表如下图1,想要达到效果如图2现有部分代码:SELECT Y.ItemNum as 零件号,Y.Line as 生产线, sum (case Y.ordinal when '1' then SumScrapQty else 0 end) Top1缺陷数量, sum (case Y.ordinal when '2' then SumScrapQty else 0 end) Top2缺陷数量, sum (case Y.ordinal when '3' then SumScrapQty else 0 end) Top3缺陷数量, sum (case Y.ordinal when '4' then SumScrapQty else 0 end) Top4缺陷数量, sum (case Y.ordinal when '5' then SumScrapQty else 0 end) Top5缺陷数量 from。。。。都不能把达到效果,求高手指点,怎么实现,谢谢

我这里两种都给你介绍,行转列和列转行:

列转行——

录入经营范围时候会遇到列传行的问题解决方案如下:

在temp1 表有一下字段内容:

一条sql转化列传行效果

select  a,zj,zjname from temp1 unpivot(zjname forzj in(b,c,d,e,f,g,h,i,j));

行转列:

select*from tbname;

行转列之后的数据:

select pud, listagg(ud, ',') within group(order by null) as ud
from tbname
group by pud;

温馨提示:答案为网友推荐,仅供参考
相似回答