Предикат — это простое выражение, утверждающее некоторый факт, назовем его P
.Если P
разрешается как TRUE, он успешен.Если он принимает значение FALSE или NULL (UNKNOWN), он терпит неудачу.Однако здесь кроется ловушка: предположим, что предикат P
возвращает FALSE.В этом случае NOT (P)
вернет TRUE.С другой стороны, если P
возвращает NULL (неизвестно), то NOT (P)
также возвращает NULL.
В SQL предикаты проверяют в ограничении CHECK
, предложении WHERE
, выражении CASE
, условии соединения во фразе ON для предложений JOIN, а также в предложении HAVING
.В PSQL операторы управления потоком выполнения проверяют предикаты в предложениях IF
, WHILE
и WHEN
. Поскольку начиная с Firebird 3.0 введена поддержка логического типа, то предикат может встречаться в любом правильном выражении.