为下述列返回含有零行、一行或多行的表:这些列含有基于字符的数据类型,其中的值符合指定的 freetext_string 中文本的含义,但不符合确切的表达方式。FREETEXTTABLE 可以在 SELECT 语句的 FROM 子句中象常规表名称一样进行引用。
使用 FREETEXTTABLE 的查询指定 freetext 类型的全文查询,这些查询为每行返回一个关联等级值 (RANK)。
FREETEXTTABLE ( table , { column | * } , 'freetext_string' [ , top_n_by_rank ] )
table
标记为用于全文查询的表的名称。table 可以是一部分、两部分或三部分组成的数据库对象名称。有关更多信息,请参见 Transact-SQL 语法规则。table 不能指定服务器名称,也不能用于对链接服务器的查询。
column
驻留在 table 中、要搜索的列的名称。具有字符串数据类型的列是可进行全文检索的有效的列。
*
指定所有已注册用于全文检索的列均用于搜索给定的 freetext_string。
freetext_string
要在指定的 column 中搜索的文本。不能使用变量。
top_n_by_rank
如果指定整型值 n,FREETEXTTABLE 仅返回最前面的 n 个匹配项,并按等级排序。
FREETEXTTABLE 使用与 FREETEXT 谓词相同的搜索条件。
同 CONTAINSTABLE 一样,返回的表包含名为 KEY 和 RANK 的列,在查询中引用这些列以获得适当行并使用行等级值。
如果兼容级别小于 70,则 FREETEXTTABLE 无法被识别为关键字。有关更多信息,请参见 sp_dbcmptlevel。
FREETEXTTABLE 只能由对指定表或表中所引用的列具有适当的 SELECT 特权的用户进行唤醒调用。
此示例返回所有与 sweet、candy、bread、dry 和 meat 相关的类别的名称和描述。
USE Northwind相关文章
SELECT FT_TBL.CategoryName,
FT_TBL.Description,
KEY_TBL.RANK
FROM Categories AS FT_TBL INNER JOIN
FREETEXTTABLE(Categories, Description,
'sweetest candy bread and dry meat') AS KEY_TBL
ON FT_TBL.CategoryID = KEY_TBL.[KEY]
GO