本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
WHERE 子句
WHERE 子句會判斷是否執行某規則指定的動作。如果 WHERE 子句判斷值為 true,則規則動作已執行。否則,規則動作就不會執行。
WHERE 子句支援 資料類型、運算子、函數、文字、案例陳述式、JSON Extensions、替代範本 和 巢狀物件查詢。
範例:
發佈在 topic/subtopic
的傳入承載:{"color":"red",
"temperature":40}
。
SQL:SELECT color AS my_color FROM 'topic/subtopic' WHERE temperature > 50
AND color <> 'red'
。
在此情況下,該規則會觸發,但不會執行由規則指定的動作。將不會出現傳出承載。
您可以在 WHERE 子句中使用函數和運算子。不過您無法參考任何在 SELECT 中以 AS 關鍵字建立的別名。(系統會優先評估 WHERE 子句,以判定 SELECT 是否受到評估。)
非 JSON 承載的範例:
在「主題/副主題」上發佈的傳入非 JSON 承載:`80`
SQL:`SELECT decode(encode(*, 'base64'), 'base64') AS value FROM 'topic/subtopic'
WHERE decode(encode(*, 'base64'), 'base64') > 50
在此情況下,該規則會觸發,並且執行由規則指定的動作。傳出承載將由 SELECT 子句轉換為 JSON 承載 {"value":80}
。