2012-04-05 17 views
6

Tôi cần bật tính năng đối sánh một phần trên tìm kiếm tên. Hiện tại nó hoạt động với Like '%@name%' nhưng nó không đủ tốt.Thực hiện đối sánh từng phần trên các trường tên trong SQL Server

Chúng tôi cần cho phép nhập cả tên và họ và cả hai cần phải là một phần, vì vậy tôi giả sử toàn văn là cách để đi.

Vấn đề là tôi không thể làm cho nó khớp một phần với tên. Ví dụ tìm kiếm tên của tôi (Fedor Hajdu) sẽ hoạt động nếu tôi nhập vào một trong hai phần đầy đủ nhưng không phải một phần (Nó phải phù hợp với tìm kiếm 'fe ha' chẳng hạn.

Làm cách nào để đạt được điều này? làm điều gì đó như hợp âm tiết

Trả lời

3

humm ba tùy chọn mà mya giúp bạn:

  1. dạng INFLECTIONAL (Link)
  2. cHỨA với NEAR (Link)
  3. CON TAINS với giá trị trọng (Link)

Nếu điều đó không giúp đỡ, có được chuỗi 'fe ha' và thêm một '%' trên tất cả các khoảng trống và làm một Giống như:

Like '%fe%ha%' 
+0

Không những giúp (ít nhất là trong cách tôi sử dụng chúng) –

+0

tốt tôi thấy chỉ có một lựa chọn trái sau đó. xem chỉnh sửa của tôi – Diego

+0

+1 cho các liên kết – Shiham

0

Sử dụng CONTAINS() hoặc CONTAINSTABLE() tất cả những gì bạn cần làm là thêm * vào cuối chuỗi kết hợp của bạn:

CONTAINS (Mô tả, '"trên *"');

Nếu bạn có chuỗi của bạn như một tham số bạn có thể nối như thế này:

SET @SearchTerm = ' "' + @NameParameter + '*"'

CHỨA (mô tả, searchterm);

https://technet.microsoft.com/en-us/library/ms142492(v=sql.105).aspx

Các vấn đề liên quan