sql >> Base de Datos >  >> RDS >> Sqlserver

Encuentre valores únicos en una columna de texto separado por comas

Ignorando los problemas obvios con el diseño de su mesa como se mencionó en todos los comentarios y aceptando que esto podría resultar muy lento en una mesa enorme, así es como podría hacerlo.

Primero... crearía una declaración que convertiría todas las filas en una gran lista delimitada por comas.

DECLARE @tmp VarChar(max)
SET @tmp = ''
SELECT @tmp = @tmp + ColumnA + ',' FROM TableA

A continuación, utilice la división udf con valores de tabla descrita en este artículo de SO para volver a convertir esa enorme cadena en una tabla con una cláusula distinta para garantizar que sea única.

https://stackoverflow.com/a/2837662/261997

SELECT DISTINCT * FROM dbo.Split(',', @tmp)