Вы не указали правила, по которым что-то должно отображаться в первом столбце по сравнению со вторым столбцом, поэтому я предположил, что это основано на появлении (и, следовательно, сортировке) значения cusph1
.
With RankedItems As
(
Select cusid, cusph1
, ROW_NUMBER() OVER( PARTITION BY cusid ORDER BY cusph1 DESC) As Num
From #cusphone
)
Select cusid
, Min(Case When Num = 1 Then cusph1 End) As Col1
, Min(Case When Num = 2 Then cusph1 End) As Col2
, Min(Case When Num = 3 Then cusph1 End) As Col3
From RankedItems
Group By cusid