如果想要將橫向多欄位資料轉為縱向表示(明細),則可使用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
沒有留言:
張貼留言