当前位置:Gxlcms > 数据库问题 > sql面试题:行转列

sql面试题:行转列

时间:2021-07-01 10:21:17 帮助过:12人阅读

TABLE ProgrectDetail ( ProgrectName NVARCHAR(20), --工程名称 OverseaSupply INT, --海外供应商供给数量 NativeSupply INT, --国内供应商供给数量 SouthSupply INT, --南方供应商供给数量 NorthSupply INT --北方供应商供给数量 ) INSERT INTO ProgrectDetail SELECT A, 100, 200, 50, 50 UNION ALL SELECT B, 200, 300, 150, 150 UNION ALL SELECT C, 159, 400, 20, 320 UNION ALL SELECT D, 250, 30, 15, 15

技术图片

 

 行转列后:

SELECT P.ProgrectName,P.Supplier,P.SupplyNum
FROM 
(
    SELECT ProgrectName, OverseaSupply, NativeSupply,
           SouthSupply, NorthSupply
     FROM ProgrectDetail
)T
UNPIVOT 
(
    SupplyNum FOR Supplier IN
    (OverseaSupply, NativeSupply, SouthSupply, NorthSupply )
) P

 

技术图片

 

sql面试题:行转列

标签:out   create   color   pre   unp   insert   unpivot   south   国内   

人气教程排行