運算子 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

運算子

下列運算子可用於 SELECT 和 WHERE 子句。

AND 運算子

傳回 Boolean 結果。執行邏輯 AND 運算。如果左右運算元為 true,即傳回 true。否則會傳回 false。需要 Boolean 運算元或不區分大小寫的「true」或「false」字串運算元。

語法: expression AND expression

AND 運算子
左運算元 右運算元 輸出
Boolean Boolean Boolean。如果兩個運算元皆為 true 即為 true。否則為 false。
String/Boolean String/Boolean 如果所有字串均為「true」或「false」(不區分大小寫),他們會轉換為 Boolean,並以 boolean AND boolean 的方式正常處理。
其他值 其他值 Undefined.

OR 運算子

傳回 Boolean 結果。執行邏輯 OR 運算。如果右運算元或左運算元有一個為 true 即傳回 true。否則會傳回 false。需要 Boolean 運算元或不區分大小寫的「true」或「false」字串運算元。

語法: expression OR expression

OR 運算子
左運算元 右運算元 輸出
Boolean Boolean Boolean。如果有一個運算元為 true 即為 true。否則為 false。
String/Boolean String/Boolean 如果所有字串均為「true」或「false」(不區分大小寫),它們會轉換為布林值,並以 boolean OR boolean 的方式正常處理。
其他值 其他值 Undefined.

NOT 運算子

傳回 Boolean 結果。執行邏輯 NOT 運算。如果運算元為 false 即傳回 true。否則即傳回 true。需要 Boolean 運算元或不區分大寫的「true」或「false」字串運算元。

語法:NOT expression

NOT 運算子
運算元 輸出
Boolean Boolean。如果運算元為 false 即為 true。否則為 true。
String 如果字串為「true」或「false」(不區分大小寫),則會轉換為對應的布林值,並傳回相反的值。
其他值 Undefined.

IN 運算子

傳回 Boolean 結果。您可以在 WHERE 子句中使用 IN 運算子來檢查值是否與陣列中的任何值相符。如果找到匹配,則返回 true,否則返回 false。

語法: expression IN expression

IN 運算子
左運算元 右運算元 輸出
Int/Decimal/String/Array/Object Array 如果在數組中找到 Integer Decimal StringArray///Object元素,則為真。否則為 false。

範例:

SQL: "select * from 'a/b' where 3 in arr" JSON: {"arr":[1, 2, 3, "three", 5.7, null]}

在此範例中,條件子句where 3 in arr將評估為 true,因為 3 存在於名為的陣列中arr。因此,在 SQL 語句中,select * from 'a/b'將執行。這個範例也顯示陣列可以是異質的。

存在運算符

傳回 Boolean 結果。您可以在條件子句中使用 EXISTS 運算子來測試子查詢中是否存在元素。如果子查詢返回一個或多個元素,如果子查詢返回沒有元素返回 false 它返回 true。

語法: expression

範例:

SQL: "select * from 'a/b' where exists (select * from arr as a where a = 3)" JSON: {"arr":[1, 2, 3]}

在此範例中,條件子句where exists (select * from arr as a where a = 3)將評估為 true,因為 3 存在於名為的陣列中arr。因此,在 SQL 語句中,select * from 'a/b'將執行。

範例:

SQL: select * from 'a/b' where exists (select * from e as e where foo = 2) JSON: {"foo":4,"bar":5,"e":[{"foo":1},{"foo":2}]}

在此範例中,因為 JSON 物件e內的陣列包含物件,因此條件子句where exists (select * from e as e where foo = 2)會評估為 true {"foo":2}。因此,在 SQL 語句中,select * from 'a/b'將執行。

> 運算子

傳回 Boolean 結果。如果左運算元大於右運算元即傳回 true。兩個運算元均轉換為 Decimal,再做比較。

語法:expression > expression

> 運算子
左運算元 右運算元 輸出
Int/Decimal Int/Decimal Boolean。如果左運算元大於右運算元即為 true。否則為 false。
String/Int/Decimal String/Int/Decimal 如果所有字串均可轉換為 Decimal,即 Boolean。如果左運算元大於右運算元即傳回 true。否則為 false。
其他值 Undefined. Undefined.

>= 運算子

傳回 Boolean 結果。如果左運算元大於或等於右運算元,即傳回 true。兩個運算元均轉換為 Decimal,再做比較。

語法:expression >= expression

>= 運算子
左運算元 右運算元 輸出
Int/Decimal Int/Decimal Boolean。如果左運算元大於或等於右運算元,即為 true。否則為 false。
String/Int/Decimal String/Int/Decimal 如果所有字串均可轉換為 Decimal,即 Boolean。如果左運算元大於或等於右運算元,即傳回 true。否則為 false。
其他值 Undefined. Undefined.

< 運算子

傳回 Boolean 結果。如果左側運算元少於右運算元。兩個運算元均轉換為 Decimal,再做比較。

語法:expression < expression

< 運算子
左運算元 右運算元 輸出
Int/Decimal Int/Decimal Boolean。如果左運算元小於右運算元即為 true。否則為 false。
String/Int/Decimal String/Int/Decimal 如果所有字串均可轉換為 Decimal,即 Boolean。如果左側運算元少於右運算元。否則為 false。
其他值 Undefined Undefined

<= 運算子

傳回 Boolean 結果。如果左運算元小於或等於右運算元,即傳回 true。兩個運算元均轉換為 Decimal,再做比較。

語法:expression <= expression

<= 運算子
左運算元 右運算元 輸出
Int/Decimal Int/Decimal Boolean。如果左運算元小於或等於右運算元,即為 true。否則為 false。
String/Int/Decimal String/Int/Decimal 如果所有字串均可轉換為 Decimal,即 Boolean。如果左運算元小於或等於右運算元,即傳回 true。否則為 false。
其他值 Undefined Undefined

<> 運算子

傳回 Boolean 結果。如果左右運算元不相等,即傳回 true。否則即傳回 false。

語法: expression <> expression

<> 運算子
左運算元 右運算元 輸出
Int Int 如果左運算元不等於右運算元即為 true。否則為 false。
Decimal Decimal 如果左運算元不等於右運算元即為 true。否則為 false。在做比較前,先將 Int 轉換為 Decimal
String String 如果左運算元不等於右運算元即為 true。否則為 false。
陣列 陣列 如果各運算元的項目不相等且順序不同,即為 true。否則為 false
物件 物件 如果各運算元的鍵和值不相同,即為 true。否則為 false。鍵/值的順序不重要。
Null Null False。
任何值 Undefined 未定義。
Undefined 任何值 未定義。
類型不符合 類型不符合 True。

= 運算子

傳回 Boolean 結果。如果兩個左右運算元相同,即傳回 true。否則即傳回 false。

語法: expression = expression

= 運算子
左運算元 右運算元 輸出
Int Int 如果左運算元等於右運算元即為 true。否則為 false。
Decimal Decimal 如果左運算元等於右運算元即為 true。否則為 false。在做比較前,先將 Int 轉換為 Decimal
String String 如果左運算元等於右運算元即為 true。否則為 false。
陣列 陣列 如果各運算元的項目相等且順序相同,即為 true。否則為 false。
物件 物件 如果各運算元的鍵和值相同,即為 true。否則為 false。鍵/值的順序不重要。
任何值 Undefined Undefined.
Undefined 任何值 Undefined.
類型不符合 類型不符合 False。

+ 運算子

「+」是過載的運算子。可以用來連接或新增字串。

語法: expression + expression

+ 運算子
左運算元 右運算元 輸出
String 任何值 將右運算元轉換為字串,並連接至左運算元的尾端。
任何值 String 將左運算元轉換為字串,並將右運算元連接至轉換後的左運算元的尾端。
Int Int Int 值。將運算元相加。
Int/Decimal Int/Decimal Decimal 值。將運算元相加。
其他值 其他值 Undefined.

- 運算子

從左運算元中減去右運算元。

語法: expression - expression

- 運算子
左運算元 右運算元 輸出
Int Int Int 值。從左運算元中減去右運算元。
Int/Decimal Int/Decimal Decimal 值。從左運算元中減去右運算元。
String/Int/Decimal String/Int/Decimal 如果所有字串都正確轉換為小數,則會傳回 Decimal 值。從左運算元中減去右運算元。如果不是,則傳回 Undefined
其他值 其他值 Undefined.
其他值 其他值 Undefined.

* 運算子

將左運算元乘以右運算元。

語法: expression * expression

* 運算子
左運算元 右運算元 輸出
Int Int Int 值。將左運算元乘以右運算元。
Int/Decimal Int/Decimal Decimal 值。將左運算元乘以右運算元。
String/Int/Decimal String/Int/Decimal 如果所有字串都正確轉換為小數,則會傳回 Decimal 值。將左運算元乘以右運算元。如果不是,則傳回 Undefined
其他值 其他值 Undefined.

/ 運算子

將左運算元除以右運算元。

語法: expression / expression

/ 運算子
左運算元 右運算元 輸出
Int Int Int 值。將左運算元除以右運算元。
Int/Decimal Int/Decimal Decimal 值。將左運算元除以右運算元。
String/Int/Decimal String/Int/Decimal 如果所有字串都正確轉換為小數,則會傳回 Decimal 值。將左運算元除以右運算元。如果不是,則傳回 Undefined
其他值 其他值 Undefined.

% 運算子

傳回左運算元除以右運算元的餘數。

語法: expression % expression

% 運算子
左運算元 右運算元 輸出
Int Int Int 值。傳回左運算元除以右運算元的餘數。
String/Int/Decimal String/Int/Decimal 如果所有字串都正確轉換為小數,則會傳回 Decimal 值。傳回左運算元除以右運算元的餘數。否則為 Undefined
其他值 其他值 Undefined.