SQL Server 2012:列名称为结果值

时间:2016-05-05 16:04:26

标签: sql sql-server

我有一个动态数据透视表,它返回带有更改列的表(一旦有2列,其他时间可以是5.我需要将表列名称包含在结果值中,如下例所示。我怎么能这样做?

SELECT
    'John' AS Name,
    'Malkovich' AS Surname 
INTO #T

结果表应将'Name'和'Surname'作为值

Name, Surname (column names)
Name, Surname,
John, Malkovich

此致 Przemek

1 个答案:

答案 0 :(得分:1)

您应该能够将列名称合并到您的数据透视表。例如:

declare @colNamesFormattedForSelect VARCHAR(MAX)
set @colNamesFormattedForSelect = '''Name'' as Name, ''Surname'' as Surname' 
-- create this value dynamically for your pivot (glhf)

set @sql = 'SELECT ' + @colNamesFormattedForSelect + 
           'UNION ALL ' + 
           -- Your pivot here

当然,您的所有列都需要能够为此工作提供文本。

我真的建议重新检查一下您的用例,看看是否有比这更好的解决方案。在大多数情况下,有更好的方法来访问列名。