運算式運算子
上次更新:2026/10/28當 建置運算式 時,使用運算子來計算值、比較輸入並組合條件。
下列語意適用於移動工作運算式。在雲端資料平台上執行的運算式會使用該平台的語意。在運算子前後加上空格,並為文字與日期常數加上引號,例如 $HIRE_DATE < '2026-10-08'。
算術運算子
| 運算子 | 意義 | 範例與結果 |
|---|---|---|
+
|
將兩個運算元相加。 | 2 + 3 回傳 5。 |
-
|
從左運算元減去右運算元。前置負號會將數值取負。 | 5 - 2 回傳 3。 |
*
|
將運算元相乘。 | 3 * 4 回傳 12。 |
/
|
將左運算元除以右運算元。整數除法會向零捨去。實數運算元會保留小數結果。除以零會傳回 NULL。 | 7 / 2 傳回 3;7.0 / 2 傳回 3.5。 |
%
|
將兩個運算元轉換為整數,並傳回除法餘數。這不是百分比計算。 | 7 % 3 回傳 1。 |
比較運算子
比較運算若為 true 則傳回 1,若為 false 則傳回 0。與 NULL 進行的一般比較會傳回 NULL;請使用 IS 或 IS NOT 來測試遺漏值。
| 運算子 | 意義 | 範例與結果 |
|---|---|---|
=
|
測試是否相等。 | 3 = 3 回傳 1。 |
!=
|
測試是否不相等。 | 3 != 4 回傳 1。 |
<>
|
替代不等於運算子。 | 3 <> 3 回傳 0。 |
<
|
測試左側的值是否較小。 | 2 < 3 回傳 1。 |
<=
|
測試是否小於或等於。 | 3 <= 3 回傳 1。 |
>
|
測試左側的值是否較大。 | 4 > 3 回傳 1。 |
>=
|
測試是否大於或等於。 | 3 >= 3 回傳 1。 |
IS
|
測試相等性,且不會傳回 NULL。兩個 NULL 值相等;NULL 值與非 NULL 值則不相等。 | NULL IS NULL 回傳 1。 |
IS NOT
|
測試是否不相等,且不傳回 NULL。 | NULL IS NOT 3 回傳 1。 |
邏輯與條件運算子
| 運算子 | 意義 | 範例與結果 |
|---|---|---|
AND
|
當兩個條件皆為 true 時為 True。只要有一個運算元為 false,即使另一個運算元為 NULL,結果也會是 false。 | (3 > 2) AND (4 < 3) 回傳 0。 |
OR
|
當任一條件為 true 時即為 True。只要其中一個運算元為 true,即使另一個運算元為 NULL,結果仍為 true。 | (3 > 2) OR (4 < 3) 回傳 1。 |
IN
|
測試括號清單中的成員資格。如果沒有相符的值,且清單包含 NULL,則傳回 NULL。空清單會傳回 0,包括左運算元為 NULL 的情況。 | 2 IN (1, 2, 3) 傳回 1;4 IN (1, NULL) 傳回 NULL。 |
CASE
|
傳回第一個相符的分支。使用基準值,並將其與每個 WHEN 值進行比較。若沒有,則會測試每個 WHEN 條件。若沒有分支相符,則使用 ELSE;若未提供 ELSE,則使用 NULL。 | CASE WHEN 5 > 3 THEN 'High' ELSE 'Low' END 傳回 'High'。CASE 2 WHEN 1 THEN 'One' WHEN 2 THEN 'Two' END 回傳 'Two'。 |
字串與模式運算子
| 運算子 | 意義 | 範例與結果 |
|---|---|---|
||
|
串連文字值。NULL 運算元會產生 NULL。 | 'John' || ' ' || 'Smith' 回傳 'John Smith'。 |
LIKE
|
比較左側字串與右側模式。% 符合零個或多個字元;_ 符合一個字元。預設會忽略 ASCII 字母大小寫,但不會忽略非 ASCII 大小寫差異。ESCAPE 指定用於常值萬用字元的單一字元。 |
'Alice' LIKE 'A%' 傳回 1。'10%' LIKE '10!%' ESCAPE '!' 回傳 1。 |
GLOB
|
使用 Unix 樣式模式進行區分大小寫的比對。* 可比對零個或多個字元,? 會比對一個,而中括號定義字元集。 |
'file.csv' GLOB '*.csv' 傳回 1;'File.CSV' GLOB '*.csv' 傳回 0。 |
MATCH
|
委派至應用程式定義的 match() 函式。需要可用的實作;預設的 SQLite 實作會引發錯誤。 |
'Quarterly sales' MATCH 'sales' 說明了語法。結果取決於應用程式的實作。 |
REGEXP
|
委派至應用程式定義的 regexp() 函式。SQLite 預設未提供此函式。 |
'ABC123' REGEXP '^[A-Z]+[0-9]+$' 說明了語法。若沒有實作,評估就會失敗。 |
位元運算子
這些二元運算子作用於整數的位元,而非邏輯條件。| 表示位元 OR,即使編輯器也將其列在邏輯類別中也是如此。
| 運算子 | 意義 | 範例與結果 |
|---|---|---|
<<
|
將左側整數向左位移右運算元所指定的位元數。 | 3 << 1 回傳 6。 |
>>
|
將左側整數向右位移右運算元所指定的位元數。 | 8 >> 1 回傳 4。 |
&
|
位元 AND:僅在兩個運算元的該位元皆已設定時,才會設定結果位元。 | 6 & 3 回傳 2。 |
|
|
位元 OR:若任一運算元的該位元已設定,則設定結果位元。 | 6 | 3 回傳 7。 |
求值順序與遺漏值
對於上述二元運算子,優先順序從最高到最低依序為串接;乘法、除法和餘數;加法和減法;位元運算;順序比較;相等性與模式測試;AND;然後是 OR。相同層級的運算子會由左至右進行評估。括號會覆寫此順序:(2 + 3) * 4 會傳回 20,而 2 + 3 * 4 則會傳回 14。
大多數運算子在運算元為 NULL 時會傳回 NULL。上述說明的例外狀況包含 IS、IS NOT,以及特定 AND、OR 和 IN 案例。當遺漏值應有替代值時,請使用 $COALESCE。請參閱 運算式函式。