Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Temukan nilai unik di kolom teks yang dipisahkan koma

Mengabaikan masalah nyata dengan desain tabel Anda seperti yang disinggung dalam semua komentar dan menerima bahwa ini mungkin terbukti sangat lambat pada tabel besar, inilah cara saya melakukannya.

Pertama... Saya akan membuat pernyataan yang akan mengubah semua baris menjadi satu daftar besar yang dibatasi koma.

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

Kemudian gunakan tabel valued udf split yang dijelaskan oleh artikel SO ini untuk mengubah string besar itu kembali menjadi tabel dengan klausa berbeda untuk memastikannya unik.

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. Dapatkan tanggal pembuatan indeks dari SQL server

  2. Cara Memperbaiki "Daftar pilih untuk pernyataan INSERT berisi lebih sedikit item daripada daftar sisipan"

  3. Menyimpan file di SQL Server

  4. Bagaimana cara mengubah varchar ke datetime di T-SQL?

  5. Memahami Penguncian SQL Server ke Lingkungan Basis Data yang Aman