Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Znajdź unikalne wartości w kolumnie tekstu oddzielonego przecinkami

Ignorując oczywiste problemy z projektem stołu, o których wspomniano we wszystkich komentarzach, i akceptując fakt, że może to działać bardzo wolno na ogromnym stole, oto jak mogę to zrobić.

Najpierw... utworzyłbym instrukcję, która zamieniłaby wszystkie wiersze w jedną wielką, masywną listę rozdzielaną przecinkami.

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

Następnie użyj podziału udf o wartości tabeli opisanego w tym artykule SO, aby zamienić ten ogromny ciąg z powrotem w tabelę z odrębną klauzulą, aby upewnić się, że jest ona unikalna.

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

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SqlConnection SqlCommand SqlDataReader IDisposable

  2. Znajdź zablokowaną tabelę w SQL Server

  3. Jak zwiększyć maksymalny dozwolony rozmiar załącznika dla wiadomości e-mail wysyłanych przy użyciu msdb.dbo.sp_send_dbmail w programie Microsoft SQL Server 2005/2008

  4. Użyj TYPEPROPERTY(), aby zwrócić informacje o typie danych w SQL Server

  5. Jak zapisywać dokumenty takie jak PDF, Docx, xls na serwerze sql 2008?