按实体类型将多行合并为一行

时间:2018-10-04 15:44:34

标签: sql sql-server

我有一个像这样的表,它有一个实体类型和实体项ID。我想按ID列对它们进行分组,然后将这些记录合并为一行,成为各自的列类型。

Id EntityItemId EntityTypeId
1   id1             1
1   id2             2
1   id3             3
1   id4             4
2   id5             1
2   id6             2
2   id7             3

所需的输出:

ID Entitytype1  Entitytype2  Entitytype3   Entitytype4
1   id1            id2           id3          id4
2   id5            id6           id7          null

谢谢

1 个答案:

答案 0 :(得分:0)

使用枢轴

    select ID ,[1] as Entitytype1,[2] as Entitytype2
   ,[3] as Entitytype3 ,[4] as Entitytype4 from 
    (
    select * from t
    ) src
    PIVOT
    ( 
    max(EntityItemId) for EntityTypeId in ([1],[2],[3],[4])
    )pv