DECLARE @Count BIGINT 
SELECT @Count = Count(ID) 
FROM Users; 
SELECT TOP 50  
    CustUser.[ID],
    CustUser.[FirstName] + ' ' + CustUser.[LastName] FirstName,
    CustUser.[NickName],
    CustUser.[UserName],
    R.[Name] Roles     
FROM
    (SELECT       
         ROW_NUMBER() OVER(ORDER BY US.ID Desc) AS Row,
         US.[ID], US.[FirstName], US.[LastName], US.[NickName],
         US.[UserName], US.[Password]
     FROM 
         [Users] US) CustUser
LEFT JOIN 
    Category CL ON CustUser.[LoginModeCode] = CL.CategoryCode
LEFT JOIN 
    Category CS ON CustUser.[StatusCode] = CS.CategoryCode 
LEFT JOIN
    UserRoles UR ON UR.UserID = CustUser.ID
LEFT JOIN
    Roles R ON R.ID = UR.RoleID
WHERE 
    CustUser.ID = 3 AND 
    [Row] > (1 - 1) * 50  
ORDER BY
    FirstName
This query returns the below output
ID   FirstName       NickName          UserName             Roles                
----------------------------------------------------------------------------
3     ram              jk                 ram               Developer          
3     ram              jk                 ram               TeamLeader  
Roles only different in above rows. I am combining two rows.
But I want this output
 ID   FirstName   NickName    UserName    Roles                                            
 --------------------------------------------------------------
 3    ram            jk         ram       Developer, TeamLeader
 
     
    
