Инструменты пользователя

Инструменты сайта


is_not_distinct_from



is [not] distinct from

Версии сервера

1.0 1.5 2.0 2.1 2.5 3.0
Нет Нет Да Да Да Да

Доступно в

Формат

Value1 is [not] distinct from Value2

Описание

Тестирование различия (is distinct from) или отсутствия различия (is not distinct from) двух значений. Два операнда признаются различными, если имеют разные значения, либо если одно из них NULL, а второе не NULL. И наоборот: два операнда не являются различными, если они имеют одинаковое значение, либо если оба они являются NULL.

Таким образом, сравнение двух значений с помощью is not distinct from в целом подобно их сравнению на равенство ( = ) за исключением случая, когда в сравнении участвует NULL. Операция сравнения на равенство ( = ) может возвратить три результата: истину, ложь и NULL. Последнее случается, если любой из операндов сравнения сам является NULL. Хотя в логическом контексте NULL эквивалентно лжи, тем не менее это отдельное (третье) состояние. Тестирование же на отсутствие различий (is not distinct from) всегда возвращает либо истину, либо ложь. В частности, если один и только один из операндов является NULL, то результатом будет ложь (зафиксировано различие). А если оба операнда NULL - тогда истина (зафиксировано отсутствие различий).

Аналогичные рассуждения верны в отношении пары операторов неравенства (<>) и различия (is distinct from).

Если на поле существует индекс то он может быть использован при is NOT DISTINCT

Примеры, возвращающие "истину"

1 IS NOT DISTINCT FROM 1
1 IS DISTINCT FROM 0
1 IS DISTINCT FROM NULL
NULL IS NOT DISTINCT FROM NULL

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
D P V U N
 
is_not_distinct_from.txt · Последнее изменение: 2016/10/26 16:43 — 88.86.72.34