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