0
我有一個表有一列。如何編寫T-SQL語句來將表中的所有行作爲一行而不是表中的每行數據的列?將單列數據分成多列單行
我有一個表有一列。如何編寫T-SQL語句來將表中的所有行作爲一行而不是表中的每行數據的列?將單列數據分成多列單行
您可以通過構建一個動態SQL語句做到這一點。
-- Test data
declare @T table (F varchar(10))
insert into @T values
('Row 1'),
('Row 2'),
('Row 3'),
('Row 4'),
('Row 5')
-- String to hold dynamic sql
declare @S as varchar(max)
set @S = 'select '
--Build string
select @S = @S + quotename(F, '''') + ','
from @T
set @S = left(@S, len(@s)-1)
--Execute sql
exec (@S)
結果
----- ----- ----- ----- -----
Row 1 Row 2 Row 3 Row 4 Row 5
其實,PIVOT沒有做什麼運算要求。它將獲得列**名稱**作爲他的表的值,而不是新列的值。 – Lamak 2011-03-02 19:53:22