sql >> Database teknologi >  >> RDS >> Sqlserver

Find unikke værdier i en kolonne med kommasepareret tekst

Ignorerer de åbenlyse problemer med dit borddesign som nævnt i alle kommentarerne og accepterer, at dette kan vise sig at være meget langsomt på et stort bord, sådan kan jeg gøre det.

Først... Jeg ville lave en erklæring, der ville gøre alle rækkerne til en stor, massiv kommaafgrænset liste.

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

Brug derefter den tabelværdisatte udf-split, der er beskrevet i denne SO-artikel, til at vende den massive streng tilbage til en tabel med en særskilt klausul for at sikre, at den er unik.

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

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


  1. MySQL:bigint vs int

  2. Sådan finder du navnet på en begrænsning i MySQL

  3. MySQL Multiple Counts i Single Query

  4. Sådan tilføjes MySQL-tabelkolonne med en standardværdi for en anden kolonne i den eksisterende række