SQL 同一列具有多个值的数据透视列

SQL Pivot Column that has multiple values for same column

尝试透视 table 结果可能有多行具有相同的值 到目前为止,我的数据看起来像这样。

Nbr      Person     Test

33      Barry.      Prim
33      Brian       Sup
33      Burke RT    1st
33      Ray         Add
33      Jake        Add
33      Smith       Add

我正在尝试旋转它,使其看起来像这样:

Nbr   Prim    Sup     1st       Add   Add2       Add3

33   Barry   Brian   Burke      Ray   Jake       Smith

这是我目前使用的普通数据透视表,但无法在测试列中获取所有具有相同值的数据透视表

CREATE TABLE #testTbl(nbr int,name varchar(20),test VARCHAR(10))
INSERT INTO #testTbl
SELECT '33','Barry','Prim'
UNION
SELECT '33','Brian','Sup'
UNION
SELECT '33','Burke','1st'
UNION
SELECT '33','Ray','Add'
UNION
SELECT '33','jake','Add'
UNION
SELECT '33','Smith','Add'


select * from (
Select * 
from #testTbl
) as x
 pivot(
 max(name) for test in ([prim],[sup],[1st],[add])
)
as pivot1

非常感谢任何帮助。如果不可能将列输出为 Add Add2 和 Add3,那也没关系。什么都行。

您可以通过使用 window 函数修改 test 值来实现:

select *
from (Select tt.name,
             (test + (case when count(*) over (partition by test) = 1
                           then ''
                           else cast(row_number() over (partition by test order by (select null)) as varchar(255))
                      end)) as test
      from testTbl tt
     ) as x
pivot(
 max(name) for test in ([prim], [sup], [1st], [Add1], [Add2], [Add3])
) as pivot1

A SQL Fiddle 是 here.