Числовые операторы
Операторы сравнения
Операторы сравнения работают со значениями таких типов, как 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 оба варианта эквивалентны, поэтому выбор зависит от личных предпочтений программиста.