WHERE 子句 (Windows 搜尋)

判斷檔是否包含在查詢所傳回結果的條件是由 WHERE 子句所指定。 在最高層級,WHERE 子句語法有兩個部分:

...WHERE [<group_aliases>] <search_condition>
...WHERE ReuseWhere(<WHEREID>)

子句的選擇性 <group_alias> 部分藉由將別名指派給一或多個數據行群組,來簡化複雜的查詢。 這可以改善複雜查詢的可讀性,這些查詢會跨URL所指定的多個數據行搜尋相同的資訊。 如需群組別名的詳細資訊,請參閱 WITH -- AS 群組別名述詞。

WHERE 子句< 部分 >搜尋條件是一或多個搜尋述詞,可指定搜尋的相符準則。 搜尋述詞是一些表達式,可判斷提示某些值的相關一些事實。

搜尋條件的結果為布爾值,如果檔符合指定的搜尋條件,TRUE;如果檔不符合指定的搜尋條件,FALSE。 如果結果 TRUE,則會傳回檔。 如果結果 FALSE,則不會傳回檔。 Microsoft Windows 搜尋查詢中傳回的文件會根據搜尋條件的相符程度來指派排名值。 每個查詢搜尋條件都可以包含支援修改傳回排名值的 RANKBY 子句。

ReuseWhere 函式 會讓多個查詢更有效率地使用相同搜尋條件。 查詢中的 WHERE 子句會指定查詢中符合的專案集。 後續查詢可以使用新查詢 WHERE 子句中的 ReuseWhere 函式,共用針對先前評估執行的工作。

搜尋述詞

搜尋條件是由一或多個述詞或搜尋條件所組成,描述用戶搜尋的內容(例如 WHERE System.DateCreated >'2006-04-19')。 搜尋述詞可以使用 AND AND、OR或 NOT來結合。 選擇性一元運算符 NOT 只能與 AND 搭配使用,而且只能否定述詞或搜尋條件的邏輯值。 您可以使用括弧來分組和巢狀邏輯詞彙。

下表顯示邏輯運算子的優先順序。

順序(優先順序) 邏輯運算子
第一(最高) 不
第二 和
第三(最低) 或

 

相同類型的邏輯運算符是關聯的,而且沒有指定的計算順序。 例如,(A AND B) AND (C AND D) 可以計算 (A AND D) AND (B AND C), 邏輯結果沒有變更。

重要

不正確:WHERE NOT CONTAINS ('computer')

正確:WHERE CONTAINS ('software') 且未 CONTAINS ('computer')

 

在複雜的查詢中,您可能會想要強調某些數據行中的相符專案,而不是其他數據行中的相符專案。 例如,搜尋討論「軟體設計」的檔時,在文件標題中尋找搜尋字詞的可能性比在檔中尋找文字中的個別單字更可能相符。 為了以這種方式影響檔的排名,Microsoft Windows 搜尋查詢語言支援加權搜尋條件。 如需數據行加權的詳細資訊,請參閱 CONTAINS 述詞 和 FREETEXT 述詞。

Windows 搜尋中有三組搜尋述詞:全文檢索、非全文檢索和資料夾深度搜尋。 全文搜索述詞通常符合內容、標題和其他數據行的意義,並支持語言比對(例如替代文字形式、片語和鄰近搜尋)。 相反地,非全文搜索述詞符合指定數據行的值,而且不包含任何特殊的語言處理,但在某些情況下會提供字元型模式比對。 資料夾深度述詞會將搜尋範圍限制為指定的路徑。

注意

如果查詢傳回檔,因為非全文檢索述詞評估為該檔 TRUE,則排名值會計算為 1000。 使用 排名強制函數 可以修改排名值。

 

下表描述全文檢索、非全文檢索和資料夾深度搜尋述詞。

全文檢索述詞 描述
包含 支援文件文字數據行中字詞的複雜搜尋(例如標題、內容)。 可以搜尋搜尋字詞的轉折形式、測試詞彙的鄰近性,以及執行邏輯比較。 搜尋字詞可以包含通配符。
FREETEXT 搜尋符合搜尋片語意義的檔。 相關單字和類似片語將會比對,而排名數據行會根據檔與搜尋片語的接近程度計算。 搜尋字詞不能包含通配符。

 

非全文檢索述詞 描述
喜歡 使用與通配符的簡單模式比對來比較數據行值。
常值比較 數據行值會與字串、日期、時間戳、數值和其他常值進行比較。 這個述詞支援平等和不平等,例如大於和小於。
多重值 (ARRAY) 比較 多值數據行會與常值多重值數組進行比較。
零 您可以使用 NULL 述詞來偵測檔未定義的數據行值。

 

資料夾深度 描述
範圍 執行指定路徑的深層周遊,包括特定資料夾和所有子資料夾。
目錄 執行指定路徑的淺層周遊,只搜尋特定資料夾。

 

例子

如需 WHERE 子句的範例,請參閱上表中連結的個別述詞主題。

參考

ReuseWhere 函式

數據列集屬性

FROM 子句

搜尋 SQL 語法概觀

WITH -- AS 群組別名述詞

SCOPE 和 DIRECTORY 述詞

RANK BY 子句

概念

Full-Text 述詞

非Full-Text 述詞