# 표현식에서 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)를 반환합니다.