先有表如下图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;