我在 SQL Server 2008 中有这个查询
SELECT TOP 1000 *
FROM Quotes
INNER JOIN QuoteImages ON Quotes.Id = QuoteImages.QuoteId
WHERE FREETEXT(QuoteText,'some text')
如何按最相关或最高排名对结果进行排序?
我已经阅读了 msdn 文档,但是看起来很复杂,我不知道如何创建复杂的存储过程。
我在 SQL Server 2008 中有这个查询
SELECT TOP 1000 *
FROM Quotes
INNER JOIN QuoteImages ON Quotes.Id = QuoteImages.QuoteId
WHERE FREETEXT(QuoteText,'some text')
如何按最相关或最高排名对结果进行排序?
我已经阅读了 msdn 文档,但是看起来很复杂,我不知道如何创建复杂的存储过程。
您应该使用FREETEXTTABLE
(链接) 而不是FREETEXT
:
SELECT TOP 1000 Q.*, QI.*
FROM Quotes Q
INNER JOIN QuoteImages QI
ON Q.Id = QI.QuoteId
INNER JOIN FREETEXTTABLE(Quotes,QuoteText,'some text') FT
ON Q.Id = FT.[Key]
ORDER BY RANK DESC