【发布时间】:2016-12-20 09:24:31
【问题描述】:
我正在使用完整搜索文本来实现搜索功能。基本上我将不得不使用搜索字符串对所有列进行搜索。搜索字符串将具有来自不同列的值的组合。但是,我不知道我必须搜索哪些列。 例如,在全文 SQL 搜索中使用以下查询根据姓氏、地址和邮编查找客户
DECLARE @SearchString VARCHAR(200)
SET @SearchString = 'Adam OR West OR 60608'
SELECT Id, First_Name, Last_Name, Address,City,State,Zip, Rank
FROM Patient_Ex PAT
INNER JOIN CONTAINSTABLE(Patient_Ex,*, @SearchString) CT
ON PAT.Id = CT.[Key]
我得到以下结果。
Id FirstName LastName Address City State Zip RankID
25 Adam Avenue Adam North Albay Avenue Chicago IL 60619 272
26 Adam Avenue West South Escaaba Avenue Chicago IL 60620 272
27 Adam Avenue Adam eclaire Avenue Chicago IL 60634 272
28 Adam Avenue West Leamington Avenue Chicago IL 60657 272
29 Adam Avenue Adam North England Avenue Chicago IL 60660 272
30 Adam Avenue West West 59th Street Chicago IL 60608 272
31 Adam Avenue Adam West 21st Place Chicago IL 60608 272
32 Adam Avenue West South Albay Avenue Chicago IL 60655 272
但是,我希望结果如下所示。如果同一行具有匹配的所有三个搜索条件,我希望将其显示在顶部。在这种情况下,姓氏为 Adam、地址包含 West 和 Zip 60608 的记录应显示为顶部记录。
Id FirstName LastName Address City State Zip RankID
30 Adam Avenue Adam West 59th Street Chicago IL 60608 272
31 Adam Avenue West West 21st Place Chicago IL 60608 272
27 Adam Avenue Adam eclaire Avenue Chicago IL 60634 272
28 Adam Avenue West Leamington Avenue Chicago IL 60657 272
29 Adam Avenue Adam North England Avenue Chicago IL 60660 272
25 Adam Avenue West North Albany Avenue Chicago IL 60619 272
26 Adam Avenue Adam South Escanaba Avenue Chicago IL 60620 272
32 Adam Avenue West South California Avenue Chicago IL 60655 272
如何修改查询以获得与上述类似的结果。
谢谢, 桑塔
【问题讨论】:
标签: sql sql-server full-text-search sql-server-2014 rank