在運算式中傳播 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 <> NULL 傳回 True (-1)
- A < NULL 傳回 False (0)
- A <= NULL 傳回 False (0)
- A = NULL 傳回 False (0)
- A >= 傳回 False (0)
- A > NULL 傳回 False (0)