码迷,mamicode.com
首页 > 数据库 > 详细

sql面试题:行转列

时间:2020-03-17 16:44:40      阅读:111      评论:0      收藏:0      [点我收藏+]

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

CREATE 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   国内   

原文地址:https://www.cnblogs.com/25miao/p/12511594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!