DECLARE @Names TABLE (Gender VARCHAR(6), Name VARCHAR(6), Age INT) INSERT INTO @NamesSELECT 'Male','John', 52UNION ALL SELECT 'Female','Joe', 33UNION ALL SELECT 'Male','Jim',42SELECT Gender, Names= STUFF(( SELECT ' ' + Name + ' ' + CAST(Age AS VARCHAR) FROM @Names b WHERE a.Gender = b.Gender FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)') ,1, 1, '')FROM @Names a
DECLARE @Tbl TABLE (Gender char(6), Name varchar(20), Age tinyint)INSERT INTO @Tbl (Gender, Name, Age)SELECT 'Male', 'John', 52UNION ALLSELECT 'Female', 'Joe', 33UNION ALLSELECT 'Male', 'Jim', 42select distinct Gender, cast((select Name + ' ' + cast(Age as char(2)) + ' ' FROM @Tbl t1 where t1.Gender = t2.Gender for xml path('')) as varchar(max)) as Detfrom @Tbl t2