Иллюстрированный самоучитель по PostgreSQL

Логические операторы

Ключевые слова AND, OR и NOT являются логическими (булевыми) операторами PostgreSQL. Обычно они используются для операций с логическими условиями в командах SQL, особенно в секциях WHERE и HAVING.

В табл. 5.7 приведена сводка результатов, возвращаемых логическими операторами AND, OR и NOT для всех возможных сочетаний операндов (true, false и NULL).

Таблица 5.7. Операторы AND, OR и NOT.

а b a AND b a OR b NOT a NOT b
true true true true false false
true false false true false true
true NULL NULL true false NULL
false false false false true true
false NULL false NULL true NULL
NULL NULL NULL NULL NULL NULL

В листинге 5.14 приведена пара запросов с ключевыми словами OR и AND, объединяющими условия выборки записей. Первый запрос возвращает информацию о книгах, которые стоят больше 30 долларов или отсутствуют на складе. Как видно из итогового набора, для возвращения записи должно выполняться одно или оба условия.

Во втором запросе те же условия объединяются ключевым словом AND. В результате записи проходят более жесткий отбор, поскольку должны выполняться сразу оба критерия. Итоговый набор состоит всего из одной записи для книги, которая стоит дороже 30 долларов и отсутствует на складе.

Листинг 5.14. Объединение условий с использованием логических операторов.

booktown=# SELECT isbn, cost, stock
booktown-# FROM stock
booktown-# WHERE cost > 30
booktown-# OR stock = 0:
Isbn cost | stock
0394900014 23.00 | 0
044100590X | 36.00 | 89
0451198492 | 36.00 | 0
0451457994 17.00 j 0 (4 rows)
booktown=# SELECT Isbn, cost, stock
booktown-# FROM stock
booktown-# WHERE cost > 30
booktown-# AND stock = 0;
Isbn | cost stock
0451198492 36.00 0
(1 row)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.