2016-11-19 36 views
-1

我有作为如何获得行数据,在SQL Server列标题2005

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

我想显示8行数据作为临时表中的列8行从表中单列的数据,任何人都可以帮我吗?

+0

可能出现[将行转换为co在SQL Server中使用'Pivot'的列](http://stackoverflow.com/questions/15931607/convert-rows-to-columns-using-pivot-in-sql-server) – scsimon

回答

0

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

首先我concatenate column values在SQL 然后调用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用于保持安全列名包括空格和其他特殊字符