Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Намерете уникални стойности в колона с текст, разделен със запетая

Пренебрегвайки очевидните проблеми с дизайна на вашата маса, както се споменава във всички коментари, и приемайки, че това може да се окаже много бавно на огромна маса, ето как мога да го направя.

Първо... бих създал израз, който ще превърне всички редове в един голям масивен списък, разделен със запетая.

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

След това използвайте разделянето на udf с таблична стойност, описано в тази статия за SO, за да превърнете този огромен низ обратно в таблица с отделна клауза, за да гарантирате, че е уникален.

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. Как да конвертирате DateTime в TimeSpan в заявка на Entity Framework

  2. Гениална помощна програма за промяна на SQL парола за нулиране на SQL парола

  3. Как да пуснете списък с таблици на SQL Server, като игнорирате ограниченията?

  4. Инструкция CASE в клаузата WHERE в SQL Server 2008

  5. SQL Server трябва да разделя данните, но има само стандартно издание