Для проверки значений на отличие используется следующий синтаксис:
<значение> IS [NOT] DISTINCT FROM <значение1>. Предикат DISTINCT аналогичен предикату равенства с тем лишь различием, что считает два признака NULL не различающимися (возвращает TRUE при NULL=NULL). Поскольку предикат DISTINCT считает, что два признака NULL не различаются, то он никогда не возвращает неизвестное значение. Подобно предикату IS [NOT] NULL предикат DISTINCT в качестве результата возвращает только TRUE или FALSE.
Например, требуется вывести всю информацию о ремонтных заявках с кодом неисправности, равным 1, даты выполнения которых отличаются от 20.12.2001. Соответствующий запрос будет выглядеть следующим образом: SELECT * FROM Request WHERE FailureCD=1 AND
ExecutionDate IS DISTINCT FROM '20.12.2001';. Результат выполнения запроса представлен на рис. 3.16, из которого следует, что признак NULL включен в ТРЗ.
|
REQUESTCD |
ACCOUNTCD |
EXECUTORCD |
FAILURECD |
INCOMINGDATE |
EXECUTIONDATE |
EXECUTED |
|
2 |
115705 |
3 |
1 |
07.08.2001 |
12.08.2001 |
1 |
|
5 |
080270 |
4 |
1 |
31.12.2001 |
<null> |
0 |
|
9 |
136169 |
2 |
1 |
06.11.2001 |
08.11.2001 |
1 |
Рис. 3.16. Результат выполнения запроса на проверку отличия
предыдущаяследующая