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

Tìm bản ghi sql chứa các chuỗi tương tự

Nếu bạn thực sự muốn xác định độ tương tự theo cách chính xác mà bạn đã đưa ra trong câu hỏi của mình, thì bạn sẽ - như bạn nói - phải thực hiện phép tính Khoảng cách Levensthein. Trong mã được tính toán trên mỗi hàng được truy xuất bởi DataReader hoặc dưới dạng một hàm SQL Server.

Vấn đề đã nêu thực sự phức tạp hơn nó có thể xuất hiện ngay từ cái nhìn đầu tiên, bởi vì bạn không thể giả định biết những gì được chia sẻ lẫn nhau phần tử giữa hai chuỗi có thể là.

Vì vậy, ngoài Khoảng cách Levensthein, bạn có thể cũng muốn chỉ định số lượng tối thiểu các ký tự liên tiếp thực sự phải khớp (để có đủ độ tương đồng được kết luận).

Tóm lại:Nghe có vẻ như là một cách tiếp cận quá phức tạp và tốn thời gian / chậm chạp.

Điều thú vị là trong SQL Server 2008, bạn có hàm DIFFERENCE có thể được sử dụng cho một cái gì đó như thế này.

Nó đánh giá giá trị ngữ âm của hai chuỗi và tính toán sự khác biệt. Tôi không chắc liệu bạn có làm cho nó hoạt động bình thường đối với các biểu thức nhiều từ như tiêu đề phim hay không vì nó không xử lý tốt với khoảng trắng hoặc số và nhấn mạnh quá nhiều vào phần đầu của chuỗi, nhưng nó vẫn là một điều thú vị vị ngữ cần biết.

Nếu bạn là gì thực sự cố gắng mô tả là một số loại tính năng tìm kiếm, sau đó bạn nên xem xét khả năng Tìm kiếm toàn văn bản của SQL Server 2008. Nó cung cấp hỗ trợ Thesaurus tích hợp, các vị từ SQL ưa thích và cơ chế xếp hạng cho "kết quả phù hợp nhất"

CHỈNH SỬA:Nếu bạn đang tìm cách loại bỏ các bản sao có thể bạn có thể xem xét Tra cứu Mờ SSIS và Chuyển đổi Nhóm Mờ. Tôi chưa thử điều này bản thân mình, nhưng nó có vẻ là một khách hàng tiềm năng đầy hứa hẹn.

EDIT2:Nếu bạn không muốn đào sâu vào SSIS và vẫn gặp khó khăn với hiệu suất của thuật toán Khoảng cách Levensthein, bạn có thể thử thuật toán này có vẻ ít phức tạp hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thứ tự loại dữ liệu trong SQL Server

  2. Cách hoạt động của câu lệnh IF trong SQL Server

  3. Khám phá giao diện cửa hàng truy vấn SQL Server 2016

  4. Bộ đệm đệm:Nó là gì và nó ảnh hưởng như thế nào đến hiệu suất cơ sở dữ liệu?

  5. Làm cách nào để bạn thay đổi kiểu dữ liệu của một cột trong SQL Server?