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

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

Числовые операторы PostgreSQL делятся на три категории.

  • Математические операторы выполняют математическую операцию с одним или двумя операндами и возвращают значение числового типа.
  • Операторы сравнения проверяют заданное соотношение между двумя числовыми величинами (например, что одна величина больше другой) и возвращают результат проверки в виде типа boolean.
  • Двоичные операторы работают на уровне отдельных битов, то есть единиц и нулей в двоичном представлении.

Ниже приведены более подробные описания по всем трем категориям.

Математические операторы

Математические операторы используются в целевых списках, в секции WHERE команды SELECT и вообще везде, где встречаются числовые данные.

В табл. 5.4 перечислены математические операторы PostgreSQL и приведены примеры их использования.

Таблица 5.4. Математические операторы.

Оператор Синтаксис Описание
+ а + b Суммирование числовых величин а и b
- а – b Вычитание числовой величины b из а
* а * b Умножение числовых величин а и b
/ а / b Деление числовой величины а на b
% а % b Остаток от деления а на b
^ а ^ b Возведение а в степень b
|/ !/ а Квадратный корень из а
II/ ||/ а Кубический корень из b
! а! Факториал а
!! !! а Факториал а (отличается от постфиксного оператора только расположением)
@ @ а Модуль (абсолютное значение) а

Пример использования математических операторов в целевом списке приведен в листинге 5.9. Оператор / используется для вычисления удельной прибыли по каждой книги. Частное от деления преобразуется к типу numeriс с усечением до двух цифр в дробной части. Наконец, из результата вычитается целочисленная константа 1, чтобы результат выражался в процентах свыше 100.

Листинг 5.9. Использование математических операторов.

booktown=# SELECT isbn,
booktown-# (retail / cost)::numeric(3, 2) – 1 AS margin
booktown-# FROM stock
booktowri-# ORDER BY margin DESC
booktown-# LIMIT 4;
isbn | margin
0451457994 | 0.35
0760720002 | 0.33
0451198492 0.30
0441172717 | 0.29
(4 rows)

Обратите внимание на определение временного псевдонима margin при помощи ключевого слова AS. Псевдоним представляет собой временное имя, которое существует только во время обработки запроса.

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