I have the following table
 UserName   UserId   
    -----      ----    
    Bob         445       
    Bob         450       
    Rachel      512       
    Rachel      520       
    Rachel      570       
    Simon       771       
    Simon       760 
and I am trying to pivot it so that a new column is created for each username, with UserID’s listed per UserName
Bob       Rachel       Simon
445          512        771
450          520        760
             570
Advertisement
Answer
Just in case you were looking for a dynamic pivot
Example
Declare @SQL varchar(max) = '
Select *
From (
        Select * 
              ,RN = row_number() over (partition by username order by UserId) 
        from #YourTable
     ) A
 Pivot (max(UserID) For [UserName] in (' + stuff((Select distinct ',' + QuoteName([UserName]) From  #YourTable Order By 1 For XML Path('')),1,1,'')  + ') ) p
'
--Print @SQL
Exec(@SQL);
Returns
RN Bob Rachel Simon 1 445 512 760 2 450 520 771 3 NULL 570 NULL