Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tìm các giá trị duy nhất trong một cột văn bản được phân tách bằng dấu phẩy

Bỏ qua các vấn đề rõ ràng với thiết kế bảng của bạn như được ám chỉ trong tất cả các nhận xét và chấp nhận rằng điều này có thể xảy ra rất chậm trên một chiếc bàn lớn, đây là cách tôi có thể làm điều đó.

Đầu tiên ... tôi sẽ tạo một câu lệnh biến tất cả các hàng thành một danh sách lớn được phân tách bằng dấu phẩy.

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

Sau đó, sử dụng bảng phân tách udf có giá trị được mô tả bởi bài viết SO này để chuyển chuỗi lớn đó trở lại thành một bảng có mệnh đề riêng biệt để đảm bảo rằng nó là duy nhất.

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. Tham số Sniffing (hoặc Spoofing) trong SQL Server

  2. Làm cách nào để tôi có được một Kế hoạch Thực thi Truy vấn trong SQL Server?

  3. Không thể chèn null vào datetime trong máy chủ sql

  4. CHARINDEX () so với PATINDEX () trong SQL Server - Sự khác biệt là gì?

  5. Trả về các dòng có chứa các ký tự không phải chữ và số trong SQL Server