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

Числовые операторы

Операторы сравнения

Операторы сравнения работают со значениями таких типов, как integer или text, но всегда возвращают результат типа boolean. Они часто встречаются в секции WHERE, но могут использоваться в любом контексте, в котором действителен тип boolean. Операторы сравнения PostgreSQL перечислены в табл. 5.5.

Таблица 5.5. Операторы сравнения.

Оператор Описание
< Возвращает true, если левое значение меньше правого
> Возвращает true, если левое значение больше правого
<= Возвращает true, если левое значение меньше правого или равно ему
>= Возвращает true, если левое значение больше правого или равно ему
= Возвращает true, если левое значение равно правому
<> или != Возвращает true, если левое значение не равно правому

Примечание
Оператор <> существует как синоним оператора != для обеспечения совместимости с другими реализациями СУБД на базе SQL. Работают эти операторы одинаково
.

Пример команды, в которой используются операторы сравнения, приведен в листинге 5.10.

Листинг 5.10. Использование операторов сравнения.

booktown=# SELECT isbn, stock booktown-# FROM stock
booktown-# WHERE retail <= 25
booktown-# AND stock! = 0:
isbn | stock
0441172717 | 77
0590445065 | 10
0679803335 | 18
0760720002 | 28
09296C5942 | 25
1885418035 | 77
(6 rows)

Сравнение с использованием ключевых слов

Ключевое слово BETWEEN (также иногда называемое оператором) позволяет проверить, входит ли значение в некоторый интервал. Например, команда SELECT, приведенная в листинге 5.11, находит книги, цена которых находится в интервале от 10 до 17 долларов.

Листинг 5.11. Ключевое слово BETWEEN.

booktown=# SELECT isbn FROM stock
booktown-# WHERE cost BETWEEN 10 AND 17;
isbn
0394800753 0441172717 0451457994
(3 rows)

Аналогичного результата можно добиться и при помощи оператора <= в сочетании с оператором >= (листинг 5.12).

Листинг 5.12. Имитация ключевого слова BETWEEN при помощи операторов.

booktown=# SELECT isbn FROM stock
booktown-# WHERE cost >= 10 AND cost <= 17; isbn
0394800753 0441172717 0451457994
(3 rows)

В варианте с ключевым словом BETWEEN команда выглядит более понятной. Впрочем, для PostgreSQL оба варианта эквивалентны, поэтому выбор зависит от личных предпочтений программиста.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.