# 指令碼運算式

LOAD 陳述式和 SELECT 陳述式中都可使用運算式。此處所述的語法和函數適用於 LOAD 陳述式，但不適用於 SELECT 陳述式，因為後者是由 ODBC 驅動程式所解譯，而非由 Qlik Sense 所解譯。不過，大部分的 ODBC 驅動程式通常都可解譯以下所述的一些函數。

運算式包含函數、欄位和運算子，結合在一個語法中。

Qlik Sense 指令碼中所有的運算式皆會傳回一個數字及/或字串，依適合的情況而定。邏輯函數和運算子對於 False 會傳回 0，對於 True 會傳回 -1。數字和字串之間的轉換是隱含的。邏輯運算子和函數會將 0 解譯為 False，而將其他都解譯為 True。

運算式的一般語法為：

一般語法

| 運算式 | 欄位 | 運算子 |
| --- | --- | --- |
| expression ::= (constant | constant | \| |
| expression ::= (constant | fieldref | \| |
| expression ::= (constant | operator1 expression | \| |
| expression ::= (constant | expression operator2 expression | \| |
| expression ::= (constant | function | \| |
| expression ::= (constant | ( expression ) | ) |

其中：

* constant 為以一般單引號括住的字串 (文字、日期或時間)，或為數字。常數的寫法不會包含千位分隔符號，但會加上小數點作為小數點分隔符號。
* fieldref 為載入表格的欄位名稱。
* operator1 為一元運算子 (會影響右側的一個運算式)。
* operator2 為二元運算子 (會影響兩側各一個運算式)。
* function ::= functionname( parameters)
* parameters ::= expression { , expression }

參數的數目和類型非為任意的，會視所用的函數而定。

因此，運算式和函數可任意構成巢狀，只要運算式傳回可解譯的值，Qlik Sense 就不會產生任何錯誤訊息。

## 瞭解更多資訊

* [NULL 值處理](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/null-value-handling.htm)
* [貨幣符號擴充](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansions.htm)
* [在指令碼中使用引號](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/use-quotes-in-script.htm)