На случай, если ваши [Unique ID]
не являются последовательными, рассмотрим следующее:
Пример
Select *
From (
Select A.ID
,Col = concat('ID',Dense_Rank() over (partition by ID order by [Unique ID] ),' ',B.Item)
,Value = B.Value
From YourTable A
Cross Apply ( values ('Unique' ,concat('',[Unique ID]))
,('Column1',Column1)
,('Column2',Column2)
) B(Item,Value)
) src
Pivot (max(Value) for Col in ( [ID1 Unique] ,[ID2 Unique] ,[ID3 Unique] ,[ID4 Unique] -- Expand as necessary
,[ID1 Column1],[ID2 Column1],[ID3 Column1],[ID4 Column1] -- Expand as necessary
,[ID1 Column2],[ID2 Column2],[ID3 Column2],[ID4 Column2] -- Expand as necessary
)) pvt
Возвращает
