Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Suchen Sie eindeutige Werte in einer Spalte mit kommagetrenntem Text

Ignorieren Sie die offensichtlichen Probleme mit Ihrem Tischdesign, auf die in all den Kommentaren angespielt wurde, und akzeptieren Sie, dass dies an einem großen Tisch sehr langsam sein könnte, hier ist, wie ich es machen könnte.

Zuerst ... würde ich eine Anweisung erstellen, die alle Zeilen in eine große, massive, durch Kommas getrennte Liste umwandelt.

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

Verwenden Sie dann den in diesem SO-Artikel beschriebenen UDF-Split mit Tabellenwert, um diese massive Zeichenfolge wieder in eine Tabelle mit einer eindeutigen Klausel umzuwandeln, um sicherzustellen, dass sie eindeutig ist.

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

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