如何在SQL Server 2005中将行数据作为列标题

时间:2016-11-19 09:14:10

标签: sql sql-server-2005

我有一个8行的数据,表中的单列为

PeriodName
-----------
1st-Period
2nd Period
3rd Period
4th Period
5th Period
6th Period
7th Period
8th Period

我想在临时表中显示8行数据作为列,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以使用动态SQL并使用sp_executesql命令执行它

首先在SQL中concatenate column values 然后调用sp_executeSQL sp

这是一个示例

Declare @sql nvarchar(max)
SELECT @sql =
 'Select ' +
  STUFF(
    (
    SELECT
      ',' + QUOTENAME(PeriodName)
    FROM dbo.Periods
    FOR XML PATH(''),TYPE
    ).value('.','VARCHAR(MAX)'
    ), 1, 1, ''
  ) + ' From myTable' 

exec sp_executesql @sql

SQL QUOTENAME function用于保持列名称的安全,包括空格和其他特殊字符