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"')
相關主題