我有一个8行的数据,表中的单列为
PeriodName
-----------
1st-Period
2nd Period
3rd Period
4th Period
5th Period
6th Period
7th Period
8th Period
我想在临时表中显示8行数据作为列,有人可以帮助我吗?
答案 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用于保持列名称的安全,包括空格和其他特殊字符