create table demo(id int, dataval varchar(50))
insert into demo
select 1, 'val'
union
select 2, 'val1'
union
select 3, 'val3'
我尝试使用下面的查询
DECLARE @maxcols AS NVARCHAR(MAX)
SELECT @maxcols = STUFF((SELECT DISTINCT ',' + 'MAX('+QUOTENAME([dataval]) + ') AS [val]'
FROM demo
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
SELECT @maxcols AS val
我得到下面的值来获得一个变量max()
包围dataval列的值的列表。
max([val])as [val],max([val1])as [val],max([val3])as [val]
这里的别名以静态值[val]形式出现。我需要将别名显示为列值。
预期输出:
max([val])as [val1],max([val1])as [val2],max([val3])as [val3]
可能有人在帮助呢?
有什么想'MAX([VAL])为[VAL1],最大背后的逻辑([VAL1] )为[val2]'?它不符合你所要求的“我需要将别名显示为列值”。为什么你不能使用相同的动态技术来处理你用于列的别名? –
我试图让别名值为动态。但我得到错误.. – bmsqldev
发布你的尝试,使他们动态和你得到的错误。 –