WITH -- AS 组别名谓词
列组别名提供了一种使用较短名称代替列或列组名称的方法。 可选的组别名谓词是 WHERE 子句的一部分。 其语法如下:
...WHERE[ WITH(<columns>) AS #<alias_name>]
[,WITH(<columns>) AS #<alias_name>]
可以指定多个组别名,分隔 WITH...按逗号表示的 AS 谓词。
在 WHERE 子句谓词中引用组别名时,条件将应用于组中的每个列。 通过使用逻辑 OR 运算符将匹配每个列所产生的逻辑值组合在一起。
必须先定义别名,然后才能使用它,并且只能在 WHERE 子句中使用。 别名必须是一个常规标识符,前面必须是所需的井号 (#) 。
列说明符可以包含一个或多个列说明符,用逗号分隔。 列列表必须括在括号中,并且可以为每个列分配权重。 每列都有以下语法:
<column_identifier> [<weight_assignment>]
有关指定列权重的信息,请参阅 FREETEXT 谓词 和 CONTAINS 谓词。
列标识符可以是常规的,也可以是分隔的。
示例
以下 WHERE 子句示例演示了何时以及如何使用组别名谓词。 第一个示例演示了一个更重复的 WHERE 子句,该子句不使用组别名。
...WHERE
FREETEXT("System.ItemNameDisplay",'"computer software"')
OR
FREETEXT("System.Title",'"computer software"')
OR
FREETEXT("System.Keywords",'"computer software"')
可以使用组别名简化前面的示例,如以下示例所示。
...WHERE
WITH("System.ItemNameDisplay","System.Title","System.Keywords")
AS #Doc-Descriptions
FREETEXT(#Doc-Descriptions,'"computer software"')
下面是一个正权重示例,其中 Title 属性在确定相对排名时被赋予更多权重。
...WHERE
WITH("System.Title":0.8,*:0.5,
"System.Keywords")
AS #Doc-Descriptions
FREETEXT(#Doc-Descriptions,'"computer software"')
下面是一个负权重示例,其中不考虑权重为 0 的 Title 属性。
...WHERE
WITH("System.Title":0,*:1.0,
"System.Keywords")
AS #Doc-Descriptions
FREETEXT(#Doc-Descriptions,'"computer software"')
相关主题
-
参考
-
概念性