如何查询表 Store(ID,Title,Company) 以获取 title 包含“term”的所有记录,首先显示完全匹配的记录,然后显示部分匹配。换句话说,如果我在寻找“foo”,我希望记录显示为
- 福和儿子
- 好福
- 富吧
- 足球
- 赫弗勒斯
这是我所拥有的
Create PROCEDURE [dbo].[SearchUserInfo]
@query nvarchar(500),
@term nvarchar(500)
(SELECT Title,Company,
1 as match
FROM Stores
WHERE CONTAINS(Title, @query))
UNION
(SELECT Title,Company,
0 as match
FROM Stores
WHERE Title like '%' + @term +'%')
order by match desc
这个查询的问题是它返回重复的记录。如果我删除 0 作为匹配项,我不知道如何排序,因此 CONTAINS 的结果将出现在 LIKE 的结果之前。
谢谢