sql sql-server tsql sql-server-2012

sql - obtener una cadena delimitada por comas de las filas



sql-server tsql (2)

¿Cuál será la consulta en MS Sql Server para concatenar mis filas en una cadena, delimitada por comas ( como se muestra a continuación )


Suponiendo que el nombre de su columna es NAME y el nombre de la tabla es MYTABLE , puede usar la siguiente consulta:

DECLARE @strTemp VARCHAR(MAX) SET @strTemp = '''' SELECT @strTemp = @strTemp + ISNULL(NAME,'''') + '','' FROM MYTABLE --Remove last comma SET @strTemp = SUBSTRING(@strTemp ,1,LEN(@strTemp ) -1) --Get Result SELECT @strTemp

Puede filtrar registros nulos utilizando lo siguiente

SELECT @strTemp = @strTemp + NAME + '','' FROM MYTABLE WHERE NAME IS NOT NULL


Utilice STUFF y FOR XML :

Cree y complete una tabla de muestra (guárdenos este paso en sus preguntas futuras)

DECLARE @T AS TABLE ( Name varchar(10) ) INSERT INTO @T VALUES (''John''), (''Vicky''), (''Sham''), (''Anjli''), (''Manish'')

La consulta:

SELECT STUFF(( SELECT '','' + Name FROM @T FOR XML PATH('''') ), 1, 1, '''') As [output];

Resultados:

output John,Vicky,Sham,Anjli,Manish