una separar separado separada por misma lista delimitada datos convertir consulta comas columnas columna charindex cadena sql-server tsql

sql server - separar - Concatenar valores de columna en una lista separada por comas



separar datos de una misma columna sql (8)

Otra solución dentro de una consulta:

select Id, STUFF( (select ('', "'' + od.ProductName + ''"'') from OrderDetails od (nolock) where od.Order_Id = o.Id order by od.ProductName FOR XML PATH('''')), 1, 2, '''' ) ProductNames from Orders o (nolock) where o.Customer_Id = 525188 order by o.Id desc

(EDITAR: gracias @ user007 por la declaración STUFF)

¿Cuál es la sintaxis de TSQL para formatear mi salida para que los valores de columna aparezcan como una cadena, separados por comas?

Ejemplo, mi mesa CARS tiene lo siguiente:

CarID CarName ---------------- 1 Porsche 2 Mercedes 3 Ferrari

¿Cómo obtengo los nombres de los automóviles como: Porsche, Mercedes, Ferrari


Por favor intente esto con el siguiente código:

DECLARE @listStr VARCHAR(MAX) SELECT @listStr = COALESCE(@listStr+'','' , '''') + CarName FROM Cars SELECT @listStr


Puede hacer un atajo usando coalesce para concatenar una serie de cadenas de un registro en una tabla, por ejemplo.

declare @aa varchar (200) set @aa = '''' select @aa = case when @aa = '''' then CarName else @aa + coalesce('','' + CarName, '''') end from Cars print @aa


Puedes hacer esto usando cosas:

SELECT Stuff( ( SELECT '', '' + CARS.CarName FROM CARS FOR XML PATH('''') ), 1, 2, '''') AS CarNames


Si está ejecutando SQL Server 2017 o Azure SQL Database, haga algo como esto:

SELECT STRING_AGG(CarName,'','') as CarNames FROM CARS


DECLARE @SQL AS VARCHAR(8000) SELECT @SQL = ISNULL(@SQL+'','','''') + ColumnName FROM TableName SELECT @SQL


DECLARE @CarList nvarchar(max); SET @CarList = N''''; SELECT @CarList+=CarName+N'','' FROM dbo.CARS; SELECT LEFT(@CarList,LEN(@CarList)-1);

Gracias a quien en SO me mostró el uso de la acumulación de datos durante una consulta.


SELECT LEFT(Car, LEN(Car) - 1) FROM ( SELECT Car + '', '' FROM Cars FOR XML PATH ('''') ) c (Car)