# Передача значений 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)