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