FirebirdSQL logo

Утверждения

Проверяемые условия не всегда являются простыми предикатами.Они могут быть группой предикатов, каждый из которых при вычислении делает вклад в вычислении общей истинности.Такие сложные условия называются утверждениями.Утверждения могут состоять из одного или нескольких предикатов, связанных логическими операторами AND, OR и NOT. Для группировки предикатов и управления порядком вычислений можно использовать скобки.

Каждый из предикатов может содержать вложенные предикаты.Результат вычисления истинности утверждения получается в результате вычисления всех предикатов по направлению от внутренних к внешним.Каждый “уровень” вычисляется в порядке приоритета до тех пор, пока не будет получено значение истинности окончательного утверждения.

Предикаты сравнения

Предикат сравнения представляет собой два выражения, соединяемых оператором сравнения.Имеется шесть традиционных операторов сравнения:

=, >, <, >=, <=, <>

(Полный список операторов сравнения см. Операторы сравнения).

Если в одной из частей (левой или правой) предиката сравнения встречается NULL, то значение предиката будет неопределённым (UNKNOWN).

Example 1. Предикаты сравнения

Получить информацию о компьютерах, имеющих частоту процессора не менее 500 МГц и цену ниже $800

SELECT *
FROM Pc
WHERE speed >= 500 AND price < 800;

Получить информацию обо всех принтерах, которые являются матричными и стоят меньше $300

SELECT *
FROM Printer
WHERE type = 'matrix' AND price < 300;

Следующий запрос не вернёт ни одной записи, поскольку сравнение происходит с псевдо-значением NULL, даже если существуют принтеры с неуказанным типом.

SELECT *
FROM Printer
WHERE type = NULL AND price < 300;
Note
Замечание о сравнении строк

При сравнении на равенство полей типов CHAR и VARCHAR завершающий пробелы игнорируются во всех случаях.