Проверка двух значений на отличие

Для проверки значений на отличие используется следующий синтаксис:

<значение> 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. Результат выполнения запроса на проверку отличия

предыдущаяследующая