SQL中增量值的动态数据透视

时间:2018-07-23 22:47:57

标签: sql pivot-table

我在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

1 个答案:

答案 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;