我正在寻找一种方法将一个sql的值显示为另一个sql的列名。我在网上看到很多关于使用数据透视表或交叉表的例子。我尝试了两者,但无法真正找到出路。如果有人可以通过以下方式给我正确方向的提示:
如您所见,我想添加“Kledingmaat”作为标题而不是 usr1 等。
更多信息: 我有一个名为 personen 的表,该表有 10 个名为(USR1、USR2、USR3、USR4、USR5、USR6、USR7、USR8、USR9、USR10)的列,然后我有一个名为 uservelden 的表,其中包含以下列(VOLGNR、USERTABELNAAM和字幕字符串)。
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',usr' + CAST(Row_Number() OVER (ORDER BY (SELECT NULL)) as Varchar(3)) + ' as '+ QUOTENAME(c.CAPTIONSTRING)
FROM uservelden c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
SELECT @cols
set @query = 'SELECT ' + @cols + ' FROM personen '
execute(@query)