我在SQL Server逻辑中遇到问题。
下面是我的数据集:
NPI Name
1669444980 ABC
1669444980 DEF
1669444980 GHI
1669444980 ABC
1669444980 IJK
1669444980 DEF
我希望获取以下格式的数据,其中“名称”列中的列名称会根据不同的值自动递增。 Name1,Name2在“名称”列中使用长的不同值,以NPI为基础排成一行。
NPI Name1 Name2 Name3 Name4
1669444980 ABC DEF GHI IJK
答案 0 :(得分:0)
请尝试以下查询-:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT DISTINCT ',''' + [NAME_COLUMN] +''' as Name'+ cast((rank() over (order by [NAME_COLUMN])) as varchar(100))
from [YOUR_TABLE_NAME]
group by [NAME_COLUMN]
FOR XML PATH(''), Type
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = N'SELECT distinct NPI_COLUMN, ' + @cols + N' from [YOUR_TABLE_NAME]'
exec sp_executesql @query;