如何获得行数据,在SQL Server列标题2005
问题描述:
我有作为如何获得行数据,在SQL Server列标题2005
PeriodName
-----------
1st-Period
2nd Period
3rd Period
4th Period
5th Period
6th Period
7th Period
8th Period
我想显示8行数据作为临时表中的列8行从表中单列的数据,任何人都可以帮我吗?
答
您可以使用动态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用于保持安全列名包括空格和其他特殊字符
可能出现[将行转换为co在SQL Server中使用'Pivot'的列](http://*.com/questions/15931607/convert-rows-to-columns-using-pivot-in-sql-server) – scsimon