如果想要將橫向多欄位資料轉為縱向表示(明細),則可使用UNPIVOT。
--範例
--建立暫存表格
DECLARE @Table TABLE
( ProdNo varchar(3),
RepQty int,
ReaQty int,
RecQty int)
--產生測試資料
DECLARE @i INT
SET @i = 1
WHILE @i <= 3
BEGIN
INSERT INTO @Table values (
REPLICATE('0',(3-LEN(CAST(@i as varchar(3)))))+CAST(@i as varchar(3)),
@i*(@i+1),
@i*(@i+3),
@i*(@i+5))
SET @i = @i + 1
END
--資料轉換
select ProdNo,QtyType,Qty
from @Table
UNPIVOT
(
Qty FOR QtyType IN (RepQty,ReaQty,RecQty)
) PV
原始資料
執行結果
參考自:~楓花雪岳~[SQL] PIVOT 和 UNPIVOT、MSDN-使用 PIVOT 和 UNPIVOT


沒有留言:
張貼留言