# 表达式中 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)