# 在運算式中傳播 NULL 值

NULL 值會根據幾個邏輯與相當合理的規則透過運算式來傳播。

## 函數

一般的規則是當參數落在函數所定義的範圍之外時，函數會傳回 NULL。

範例：

* asin(2) 傳回 NULL
* log(-5) 傳回 NULL
* round(A,0) 傳回 NULL

從以上結果可推知，當評估所需的任何參數為 NULL 時，函數通常會傳回 NULL。

範例：

* sin(NULL) 傳回 NULL
* chr(NULL) 傳回 NULL
* if(NULL, A, B) 傳回 B
* if(True, NULL, A) 傳回 NULL
* if(True, A, NULL) 傳回 A

第二個規則的例外情況是測試類型的邏輯函數。

範例：

* isnull(NULL) 傳回 True (-1)
* isnum(NULL) 傳回 False (0)

### 算術與字串運算子

如果在這些運算子的任一端出現 NULL，則會傳回 NULL。

範例：

* A + NULL 傳回 NULL
* A - NULL 傳回 NULL
* A / NULL 傳回 NULL
* A \* NULL 傳回 NULL
* NULL / A 傳回 NULL
* 0 / NULL 傳回 NULL
* 0 \* NULL 傳回 NULL
* A & NULL 傳回 A

### 關聯運算子

如果在關係運算子的任一端出現 NULL，則適用特殊規則。

範例：

* NULL rel.op NULL 傳回 NULL
* A &lt;&gt; NULL 傳回 True (-1)
* A &lt; NULL 傳回 False (0)
* A &lt;= NULL 傳回 False (0)
* A = NULL 傳回 False (0)
* A &gt;= 傳回 False (0)
* A &gt; NULL 傳回 False (0)