Here is a GROUP_CONCAT udf for SQL Server. This particular udf is table dependent (test_group_concat) but it offers the same functionality as MySQL's extension.I used the DDL from the example of the MySQL group_concat() example at the following link:http://perso.numericable.fr/~karemman/freeware/MyGroupConcat/Readme.htmCREATE TABLE test_group_concat(id INTEGER NOT NULL identity(0,1), code VARCHAR(8), label VARCHAR(255) )INSERT INTO test_group_concat( code, label) VALUES( 'A01', '0LINE 1 LABEL')INSERT INTO test_group_concat( code, label) VALUES( 'A011', 'LINE 2 LABEL')INSERT INTO test_group_concat( code, label) VALUES( 'A0111', 'LINE 3 LABEL')INSERT INTO test_group_concat( code, label) VALUES( 'A02', '0LINE 1 LABEL 2')INSERT INTO test_group_concat( code, label) VALUES( 'A021', 'LINE 2 LABEL 2')INSERT INTO test_group_concat( code, label) VALUES( 'B01', '0LINE 1 LABEL 3')INSERT INTO test_group_concat( code, label) VALUES( 'B011', 'LINE 2 LABEL 3')INSERT INTO test_group_concat( code, label) VALUES( 'B0111', 'LINE 3 LABEL 3')INSERT INTO test_group_concat( code, label) VALUES( 'B0111', 'LINE 4 LABEL 3')INSERT INTO test_group_concat( code, label) VALUES( 'B0111', 'LINE 5 LABEL 3')INSERT INTO test_group_concat( code, label) VALUES( 'B0111', 'LINE 6 LABEL 3')INSERT INTO test_group_concat( code, label) VALUES( 'B02', '0LINE 1 LABEL 4 (nulls)')INSERT INTO test_group_concat( code, label) VALUES( 'B021', NULL)INSERT INTO test_group_concat( code, label) VALUES( 'B0211', NULL)INSERT INTO test_group_concat( code, label) VALUES( 'B0211', 'LINE 3 LABEL 4 (nulls)')INSERT INTO test_group_concat( code, label) VALUES( 'B0211', 'LINE 4 LABEL 4 (nulls)')INSERT INTO test_group_concat( code, label) VALUES( 'B0211', 'LINE 5 LABEL 4 (nulls)')INSERT INTO test_group_concat( code, label) VALUES( 'B0211', 'LINE 6 LABEL 4 (nulls)')gocreate function dbo.GROUP_CONCAT(@i varchar(100), @seperator varchar(100), @start int, @end int)returns varchar(8000)asbegin declare @String varchar(8000) declare @store table (id int identity(1,1), code varchar(8), label varchar(8000)) insert into @store (code, label) Select left(code,3), label from test_group_concat where left(code,3) = @i order by id asc select @String = label + @seperator + @String from @store where ((@start is null) or (id >= @start)) and ((@end is null) or (id < @end)) order by id descreturn ltrim(@String)endgoset concat_null_yields_null offselect left(code,3) code, dbo.GROUP_CONCAT(left(code,3), null,null,null) label from test_group_concatgroup by left(code,3),dbo.GROUP_CONCAT(left(code,3),null,null,null)select * from test_group_concatdrop function dbo.GROUP_CONCATdrop table test_group_concat