Числовые функции
Числовые функции — это функции для работы с данными числовых типов: BIGINT, NUMERIC и DOUBLE.
abs()
| Описание |
Вычисляет модуль числа. |
| Использование |
|
Посмотреть примеры
SELECT
abs(-1) AS result_1,
abs(0) AS result_2,
abs(1.1) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | 0 | 1.1 |
+----------+----------+----------+
acos()
| Описание |
Вычисляет арккосинус числа. |
| Использование |
|
Вычисляет арккосинус числа — возвращает угол в радианах, косинус которого равен заданному числу.
Посмотреть примеры
SELECT
acos(1) AS result_1,
acos(-1) AS result_2,
acos(0) AS result_3;
+----------+-------------------+--------------------+
| result_1 | result_2 | result_3 |
+----------+-------------------+--------------------+
| 0 | 3.141592653589793 | 1.5707963267948966 |
+----------+-------------------+--------------------+
acosh()
| Описание |
Вычисляет гиперболический арккосинус числа. |
| Использование |
|
Посмотреть примеры
SELECT
acosh(1) AS result_1,
acosh(1.543) AS result_2,
acosh(10) AS result_3;
+----------+-------------------+-------------------+
| result_1 | result_2 | result_3 |
+----------+-------------------+-------------------+
| 0 | 0.999931383282944 | 2.993222846126381 |
+----------+-------------------+-------------------+
add()
| Описание |
Складывает числа. |
| Использование |
|
См. также Оператор +.
Посмотреть примеры
SELECT
add(1, 1) AS result_1,
add(-1.1, 2.1) AS result_2,
add(1) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 2 | 1.0 | 1 |
+----------+----------+----------+
asin()
| Описание |
Вычисляет арксинус числа. |
| Использование |
|
Вычисляет арксинус числа — возвращает угол в радианах, синус которого равен заданному числу.
Посмотреть примеры
SELECT
asin(0) AS result_1,
asin(0.5) AS result_2,
asin(1) AS result_3;
+----------+--------------------+--------------------+
| result_1 | result_2 | result_3 |
+----------+--------------------+--------------------+
| 0 | 0.5235987755982989 | 1.5707963267948966 |
+----------+--------------------+--------------------+
asinh()
| Описание |
Вычисляет гиперболический арксинус числа. |
| Использование |
|
Посмотреть примеры
SELECT
asinh(0) AS result_1,
asinh(1) AS result_2,
asinh(10) AS result_3;
+----------+-------------------+------------------+
| result_1 | result_2 | result_3 |
+----------+-------------------+------------------+
| 0 | 0.881373587019543 | 2.99822295029797 |
+----------+-------------------+------------------+
atan()
| Описание |
Вычисляет арктангенс числа. |
| Использование |
|
Посмотреть примеры
SELECT
atan(0) AS result_1,
atan(1) AS result_2,
atan(-1) AS result_3;
+----------+--------------------+---------------------+
| result_1 | result_2 | result_3 |
+----------+--------------------+---------------------+
| 0 | 0.7853981633974483 | -0.7853981633974483 |
+----------+--------------------+---------------------+
atan2()
| Описание |
Вычисляет арктангенс по координатам. |
| Использование |
|
Вычисляет арктангенс по координатам . Возвращает угол в радианах.
Посмотреть примеры
SELECT
atan2(0, 0) AS result_1,
atan2(0, -1) AS result_2,
atan2(-1, 0) AS result_3;
+----------+-------------------+---------------------+
| result_1 | result_2 | result_3 |
+----------+-------------------+---------------------+
| 0 | 3.141592653589793 | -1.5707963267948966 |
+----------+-------------------+---------------------+
atanh()
| Описание |
Вычисляет гиперболический арктангенс числа. |
| Использование |
|
Посмотреть примеры
SELECT
atanh(0.1) AS result_1,
atanh(0.5) AS result_2,
atanh(0.762) AS result_3;
+---------------------+--------------------+--------------------+
| result_1 | result_2 | result_3 |
+---------------------+--------------------+--------------------+
| 0.10033534773107558 | 0.5493061443340548 | 1.0009670664123251 |
+---------------------+--------------------+--------------------+
bit_count()
| Описание |
Возвращает количество установленных битов в двоичном представлении числа. |
| Использование |
|
Посмотреть примеры
SELECT
bit_count(1) AS result_1,
bit_count(3) AS result_2,
bit_count(7) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | 2 | 3 |
+----------+----------+----------+
cbrt()
| Описание |
Вычисляет кубический корень. |
| Использование |
|
Посмотреть примеры
SELECT
cbrt(1) AS result_1,
cbrt(8) AS result_2,
cbrt(-8) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | 2 | -2 |
+----------+----------+----------+
ceil()
| Описание |
Округляет число в бОльшую сторону. |
| Использование |
|
| Псевдонимы |
|
Посмотреть примеры
SELECT
ceil(0.1) AS result_1,
ceil(-0.1) AS result_2,
ceiling(1) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | 0 | 1 |
+----------+----------+----------+
cos()
| Описание |
Вычисляет косинус угла, заданного в радианах. |
| Использование |
|
Посмотреть примеры
SELECT
cos(0) AS result_1,
cos(pi()) AS result_2,
cos(pi()/3) AS result_3;
+----------+----------+--------------------+
| result_1 | result_2 | result_3 |
+----------+----------+--------------------+
| 1 | -1 | 0.5000000000000001 |
+----------+----------+--------------------+
cot()
| Описание |
Вычисляет котангенс угла, заданного в радианах. |
| Использование |
|
Посмотреть примеры
SELECT
cot(1) AS result_1,
cot(pi()/2) AS result_2,
cot(pi()/4) AS result_3;
+--------------------+-----------------------+--------------------+
| result_1 | result_2 | result_3 |
+--------------------+-----------------------+--------------------+
| 0.6420926159343306 | 6.123233995736766e-17 | 1.0000000000000002 |
+--------------------+-----------------------+--------------------+
degrees()
| Описание |
Конвертирует радианы в градусы. |
| Использование |
|
Посмотреть примеры
SELECT
degrees(0) AS result_1,
degrees(pi()) AS result_2,
degrees(pi()/2) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 0 | 180 | 90 |
+----------+----------+----------+
divide()
| Описание |
Возвращает результат деления в виде целого числа. |
| Использование |
|
Посмотреть примеры
SELECT
divide(7, 2) AS result_1,
divide(7, -2) AS result_2,
divide(7, 0) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 3 | -3 | null |
+----------+----------+----------+
even()
| Описание |
Округляет до ближайшего четного числа в сторону от нуля. |
| Использование |
|
Посмотреть примеры
SELECT
even(2.1) AS result_1,
even(-2.1) AS result_2,
even(0) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 4 | -4 | 0 |
+----------+----------+----------+
exp()
| Описание |
Вычисляет экспоненту числа. |
| Использование |
|
Вычисляет экспоненциальное значение числа: .
Посмотреть примеры
SELECT
exp(0) AS result_1,
exp(1) AS result_2,
exp(-1) AS result_3;
+----------+-------------------+---------------------+
| result_1 | result_2 | result_3 |
+----------+-------------------+---------------------+
| 1 | 2.718281828459045 | 0.36787944117144233 |
+----------+-------------------+---------------------+
factorial()
| Описание |
Вычисляет факториал числа. |
| Использование |
|
Посмотреть примеры
SELECT
factorial(0) AS result_1,
factorial(1) AS result_2,
factorial(5) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | 1 | 120 |
+----------+----------+----------+
fdiv()
| Описание |
Производит целочисленное деление и возвращает результат в виде |
| Использование |
|
Посмотреть примеры
SELECT
fdiv(5, 2) AS result_1,
fdiv(1, 2) AS result_2,
fdiv(-5, 2) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 2 | 0 | -3 |
+----------+----------+----------+
floor()
| Описание |
Округляет число в меньшую сторону. |
| Использование |
|
Посмотреть примеры
SELECT
floor(0.9) AS result_1,
floor(-0.9) AS result_2,
floor(1) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 0 | -1 | 1 |
+----------+----------+----------+
fmod()
| Описание |
Возвращает остаток от деления первого аргумента на второй. |
| Использование |
|
Посмотреть примеры
SELECT
fmod(3, 2) AS result_1,
fmod(3.1, 2) AS result_2,
fmod(-10, 4) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | 1.1 | 2 |
+----------+----------+----------+
gamma()
| Описание |
Вычисляет значение Гамма-функции. |
| Использование |
|
Вычисляет значение Гамма-функции (интерполяция факториала ). Допускаются дробные (вещественные) значения.
Посмотреть примеры
SELECT
gamma(1) AS result_1,
gamma(5) AS result_2,
gamma(0.5) AS result_3;
+----------+----------+-------------------+
| result_1 | result_2 | result_3 |
+----------+----------+-------------------+
| 1 | 24 | 1.772453850905516 |
+----------+----------+-------------------+
gcd()
| Описание |
Вычисляет наибольший общий делитель двух чисел. |
| Использование |
|
| Псевдонимы |
|
Посмотреть примеры
SELECT
gcd(12, 9) AS result_1,
gcd(-12, 9) AS result_2,
gcd(12, 0) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 3 | 3 | 12 |
+----------+----------+----------+
greatest()
| Описание |
Возвращает наибольший аргумент из указанных. |
| Использование |
|
-
При использовании с числами возвращает наибольшее число.
-
При использовании с текстовыми строками — возвращает последнюю из строк по алфавитному порядку. При этом верхний регистр предшествует нижнему.
-
При использовании с типами для даты и времени — возвращает самый поздний объект.
Посмотреть примеры
SELECT
greatest(1, 2, 3, 4, 4) AS result_1,
greatest(1, -1) AS result_2,
greatest(0) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 4 | 1 | 0 |
+----------+----------+----------+
SELECT
greatest('a', 'z', 'A', 'Z') AS result_1,
greatest('Tengri', 'TNGRi') AS result_2;
+----------+----------+
| result_1 | result_2 |
+----------+----------+
| z | Tengri |
+----------+----------+
SELECT
greatest(DATE '2024-02-29', TIMESTAMP '2024-02-29 00:00:01') AS result_1,
greatest(DATE '2024-02-29', DATE '2029-02-24') AS result_2,
greatest(DATE '2024-02-29', now()) AS result_3;
+---------------------+------------+----------------------------------+
| result_1 | result_2 | result_3 |
+---------------------+------------+----------------------------------+
| 2024-02-29T00:00:01 | 2029-02-24 | 2026-05-06T13:05:46.173330+03:00 |
+---------------------+------------+----------------------------------+
isfinite()
| Описание |
Проверяет, является ли число конечным. |
| Использование |
|
Посмотреть примеры
SELECT
isfinite(1) AS result_1,
isfinite('Infinity'::DOUBLE) AS result_2,
isfinite(NULL) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| true | false | null |
+----------+----------+----------+
isinf()
| Описание |
Проверяет, является ли число бесконечным. |
| Использование |
|
Посмотреть примеры
SELECT
isinf(1) AS result_1,
isinf('Infinity'::DOUBLE) AS result_2,
isinf(NULL) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| false | true | null |
+----------+----------+----------+
isnan()
| Описание |
Проверяет, имеет ли аргумент значение |
| Использование |
|
Посмотреть примеры
SELECT
isnan('NaN'::DOUBLE) AS result_1,
isnan(1.1) AS result_2,
isnan(NULL) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| true | false | null |
+----------+----------+----------+
lcm()
| Описание |
Вычисляет наименьшее общее кратное двух чисел. |
| Использование |
|
| Псевдонимы |
|
Посмотреть примеры
SELECT
lcm(3, 7) AS result_1,
lcm(333, 777) AS result_2,
lcm(37, 0) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 21 | 2331 | 0 |
+----------+----------+----------+
least()
| Описание |
Возвращает наименьший аргумент из указанных. |
| Использование |
|
-
При использовании с числами возвращает наименьшее число.
-
При использовании с текстовыми строками — возвращает первую из строк по алфавитному порядку. При этом верхний регистр предшествует нижнему.
-
При использовании с типами для даты и времени — возвращает самый ранний объект.
Посмотреть примеры
SELECT
least(1, 1, 2, 3, 4) AS result_1,
least(1, -1) AS result_2,
least(0) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | -1 | 0 |
+----------+----------+----------+
SELECT
least(DATE '2024-02-29', TIMESTAMP '2024-02-29 00:00:01') AS result_1,
least(DATE '2024-02-29', DATE '2029-02-24') AS result_2,
least(DATE '2024-02-29', now()) AS result_3;
+---------------------+------------+---------------------------+
| result_1 | result_2 | result_3 |
+---------------------+------------+---------------------------+
| 2024-02-29T00:00:00 | 2024-02-29 | 2024-02-29T00:00:00+03:00 |
+---------------------+------------+---------------------------+
SELECT
least('a', 'z', 'A', 'Z') AS result_1,
least('Tengri', 'TNGRi') AS result_2;
+----------+----------+
| result_1 | result_2 |
+----------+----------+
| A | TNGRi |
+----------+----------+
lgamma()
| Описание |
Вычисляет логарифм гамма-функции. |
| Использование |
|
Посмотреть примеры
SELECT
lgamma(1) AS result_1,
lgamma(11) AS result_2,
lgamma(1.1) AS result_3;
+----------+--------------------+-----------------------+
| result_1 | result_2 | result_3 |
+----------+--------------------+-----------------------+
| 0 | 15.104412573075518 | -0.049872441259839764 |
+----------+--------------------+-----------------------+
ln()
| Описание |
Вычисляет натуральный логарифм числа. |
| Использование |
|
Посмотреть примеры
SELECT
ln(1) AS result_1,
ln(11) AS result_2,
ln(1.1) AS result_3;
+----------+--------------------+---------------------+
| result_1 | result_2 | result_3 |
+----------+--------------------+---------------------+
| 0 | 2.3978952727983707 | 0.09531017980432493 |
+----------+--------------------+---------------------+
log()
| Описание |
Вычисляет логарифм числа по основанию |
| Использование |
|
| Псевдонимы |
|
Посмотреть примеры
SELECT
log(1) AS result_1,
log(100) AS result_2,
log(0.01) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 0 | 2 | -2 |
+----------+----------+----------+
log2()
| Описание |
Вычисляет логарифм числа по основанию |
| Использование |
|
Посмотреть примеры
SELECT
log2(1) AS result_1,
log2(2) AS result_2,
log2(4096) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 0 | 1 | 12 |
+----------+----------+----------+
multiply()
| Описание |
Перемножает два числа. |
| Использование |
|
См. также Оператор *.
Посмотреть примеры
SELECT
multiply(2, 2) AS result_1,
multiply(0, 2) AS result_2,
multiply(0.2, -0.2) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 4 | 0 | -0.04 |
+----------+----------+----------+
nextafter()
| Описание |
Возвращает следующее значение с переменной точностью (типа |
| Использование |
|
Посмотреть примеры
SELECT
nextafter(1::DOUBLE, 2) AS result_1,
nextafter(1::BIGINT, 2) AS result_2,
nextafter(-1::BIGINT, 0) AS result_3;
+--------------------+--------------------+---------------------+
| result_1 | result_2 | result_3 |
+--------------------+--------------------+---------------------+
| 1.0000000000000002 | 1.0000000000000002 | -0.9999999999999999 |
+--------------------+--------------------+---------------------+
pi()
| Описание |
Возвращает значение числа π. |
| Использование |
|
Посмотреть примеры
SELECT
pi() AS result_1,
pi()/2 AS result_2,
sin(pi()/2) AS result_3;
+-------------------+--------------------+----------+
| result_1 | result_2 | result_3 |
+-------------------+--------------------+----------+
| 3.141592653589793 | 1.5707963267948966 | 1 |
+-------------------+--------------------+----------+
pow()
| Описание |
Возводит первый аргумент в степень, заданную вторым аргументом. |
| Использование |
|
| Псевдонимы |
|
См. также Оператор ^.
Посмотреть примеры
SELECT
pow(2, 5) AS result_1,
pow(25, -1) AS result_2,
pow(25, 0) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 32 | 0.04 | 1 |
+----------+----------+----------+
radians()
| Описание |
Конвертирует градусы в радианы. |
| Использование |
|
Посмотреть примеры
SELECT
radians(0) AS result_1,
radians(180) AS result_2,
radians(-180/pi()) AS result_3;
+----------+-------------------+----------+
| result_1 | result_2 | result_3 |
+----------+-------------------+----------+
| 0 | 3.141592653589793 | -1 |
+----------+-------------------+----------+
random()
| Описание |
Возвращает произвольное число (типа |
| Использование |
|
См. также setseed().
Посмотреть примеры
SELECT
random() AS result;
+--------------------+
| result |
+--------------------+
| 0.5656213557274057 |
+--------------------+
Функцию random() удобно использовать для выбора из таблицы произвольного сэмпла заданной длины.
|
Покажем на примере, как выбрать из таблицы с 1 миллионом строк случайный сэмпл размером 10:
CREATE TABLE demo.numbers (numbers BIGINT);
INSERT INTO demo.numbers (numbers)
SELECT unnest(generate_series(1,1000000));
SELECT * FROM demo.numbers
ORDER BY random()
LIMIT 10;
+---------+
| numbers |
+---------+
| 265453 |
+---------+
| 16766 |
+---------+
| 861234 |
+---------+
| 455059 |
+---------+
| 898869 |
+---------+
| 454774 |
+---------+
| 465029 |
+---------+
| 885538 |
+---------+
| 465844 |
+---------+
| 50905 |
+---------+
round_even()
| Описание |
Округляет число из первого аргумента до ближайшего четного с указанной во втором аргументе точностью. |
| Использование |
|
| Псевдонимы |
|
Второй аргумент указывает на количество десятичных знаков точности и может быть отрицательным числом.
Подробнее об округлении до ближайшего четного числа см. здесь.
Посмотреть примеры
SELECT
round_even(4.5, 0) AS result_1,
round_even(3.5, 0) AS result_2,
round_even(-4.5, 0) AS result_3,
round_even(-3.5, 0) AS result_4,
round_even(4.45, 1) AS result_5,
round_even(4.35, 1) AS result_6,
round_even(35.35, -1) AS result_7;
+----------+----------+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 | result_6 | result_7 |
+----------+----------+----------+----------+----------+----------+----------+
| 4 | 4 | -4 | -4 | 4.4 | 4.4 | 40 |
+----------+----------+----------+----------+----------+----------+----------+
round()
| Описание |
Округляет число из первого аргумента с указанной во втором аргументе точностью. |
| Использование |
|
Второй аргумент указывает на количество десятичных знаков точности и может быть отрицательным числом.
Посмотреть примеры
SELECT
round(4.5, 0) AS result_1,
round(4.45, 1) AS result_2,
round(44.5, -1) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 5 | 4.5 | 40 |
+----------+----------+----------+
setseed()
| Описание |
Фиксирует начальное значение для функции |
| Использование |
|
См. также random().
Посмотреть примеры
SELECT
setseed(0.5) AS seed,
random() AS random;
+------+--------------------+
| seed | random |
+------+--------------------+
| null | 0.8511131886287325 |
+------+--------------------+
sign()
| Описание |
Возвращает |
| Использование |
|
Посмотреть примеры
SELECT
sign(10) AS result_1,
sign(-10) AS result_2,
sign(0) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | -1 | 0 |
+----------+----------+----------+
signbit()
| Описание |
Определяет, установлен ли бит знака у вещественного числа. |
| Использование |
|
Посмотреть примеры
SELECT
signbit(-1) AS result_1,
signbit(-'Infinity'::DOUBLE) AS result_2,
signbit(0) AS result_3,
signbit(1) AS result_4,
signbit('Infinity'::DOUBLE) AS result_5;
+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 |
+----------+----------+----------+----------+----------+
| true | true | false | false | false |
+----------+----------+----------+----------+----------+
sin()
| Описание |
Вычисляет синус угла, заданного в радианах. |
| Использование |
|
Посмотреть примеры
SELECT
sin(0) AS result_1,
sin(pi()/2) AS result_2,
sin((3*pi())/2) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 0 | 1 | -1 |
+----------+----------+----------+
sqrt()
| Описание |
Вычисляет квадратный корень. |
| Использование |
|
Число num должно быть неотрицательным.
Посмотреть примеры
SELECT
sqrt(4) AS result_1,
sqrt(144) AS result_2,
sqrt(0) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 2 | 12 | 0 |
+----------+----------+----------+
subtract()
| Описание |
Вычитает второй аргумент из первого. |
| Использование |
|
См. также Оператор -.
Посмотреть примеры
SELECT
subtract(1, 2) AS result_1,
subtract(1.1, 2.2) AS result_2,
subtract(-1, -2) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| -1 | -1.1 | 1 |
+----------+----------+----------+
tan()
| Описание |
Вычисляет тангенс угла, заданного в радианах. |
| Использование |
|
Посмотреть примеры
SELECT
tan(0) AS result_1,
tan(pi()/4) AS result_2,
tan(pi()) AS result_3;
+----------+--------------------+-------------------------+
| result_1 | result_2 | result_3 |
+----------+--------------------+-------------------------+
| 0 | 0.9999999999999999 | -1.2246467991473532e-16 |
+----------+--------------------+-------------------------+
trunc()
| Описание |
Отбрасывает все знаки после десятичного разделителя. |
| Использование |
|
Не следует путать с округлением round.
Посмотреть примеры
SELECT
trunc(1.99) AS result_1,
trunc(-11.9) AS result_2,
trunc(0.119) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | -11 | 0 |
+----------+----------+----------+
xor()
| Описание |
Вычисляет побитовое исключающее |
| Использование |
|
Посмотреть примеры
SELECT
xor(2, 3) AS result_1,
xor(5, 7) AS result_2,
xor(1, 2) AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | 2 | 3 |
+----------+----------+----------+
Оператор +
| Описание |
Прибавляет правый аргумент к левому. |
| Использование |
|
Если используется с типами для для даты и времени, то прибавляет интервал к значению времени. Возвращает значение типа TIME.
См. также add().
Посмотреть примеры
SELECT
3 + 2 AS result_1,
3 + 2 + -1 AS result_2,
1.1 + 1.9 AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 5 | 4 | 3.0 |
+----------+----------+----------+
SELECT
TIME '12:11:10' + INTERVAL 3 hours AS result_time_1,
INTERVAL '12:11:10' + TIME '1:1:1' AS result_time_2;
+---------------+---------------+
| result_time_1 | result_time_2 |
+---------------+---------------+
| 15:11:10 | 13:12:11 |
+---------------+---------------+
Оператор -
| Описание |
Вычитает правый аргумент из левого. |
| Использование |
|
Если используется с типами для для даты и времени, то вычитает интервал из значения времени. Возвращает значение типа TIME.
См. также subtract().
Посмотреть примеры
SELECT
3 - 2 AS result_1,
3 - 2 - +1 AS result_2,
1.2 - 0.2 AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | 0 | 1.0 |
+----------+----------+----------+
SELECT
TIME '12:11:10' - INTERVAL 3 HOUR AS result_time_1,
TIME '12:11:10' - INTERVAL 3 HOUR - INTERVAL 1 HOUR AS result_time_2;
+---------------+---------------+
| result_time_1 | result_time_2 |
+---------------+---------------+
| 09:11:10 | 08:11:10 |
+---------------+---------------+
Оператор *
| Описание |
Перемножает аргументы. |
| Использование |
|
См. также multiply().
Не путать с другой звездочкой.
Посмотреть примеры
SELECT
3*2 AS result_1,
3*+2*-2 AS result_2,
3*0 AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 6 | -12 | 0 |
+----------+----------+----------+
Оператор /
| Описание |
Делит левый аргумент на правый. |
| Использование |
|
Возвращает результат в виде числа с переменной точностью (типа DOUBLE).
Посмотреть примеры
SELECT
3/2 AS result_1,
3/+2/-2 AS result_2,
3/1 AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1.5 | -0.75 | 3 |
+----------+----------+----------+
Оператор %
| Описание |
Возвращает остаток от деления левого аргумента на правый. |
| Использование |
|
Посмотреть примеры
SELECT
3 % 2 AS result_1,
15 % 10 % 3 AS result_2,
5 % 2.4 AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 1 | 2 | 0.2 |
+----------+----------+----------+
Оператор ^
| Описание |
Возводит левый аргумент в степень, заданную правым аргументом. |
| Использование |
|
См. также pow().
Посмотреть примеры
SELECT
2^3 AS result_1,
2^3^2 AS result_2,
1^0 AS result_3;
+----------+----------+----------+
| result_1 | result_2 | result_3 |
+----------+----------+----------+
| 8 | 64 | 1 |
+----------+----------+----------+
Оператор <
| Описание |
Проверяет, что левый аргумент меньше правого. |
| Использование |
|
Может использоваться не только с числовыми типами, но и с типами для даты и времени.
Посмотреть примеры
SELECT
0 < 1 AS result_1,
1 < 0 AS result_2, -- false expected
1 < NULL AS result_3,
'2025-01-01'::DATE < '2026-01-01'::DATE AS result_4,
'00:00'::TIME < '15:00'::TIME AS result_5;
+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 |
+----------+----------+----------+----------+----------+
| true | false | null | true | true |
+----------+----------+----------+----------+----------+
Оператор >
| Описание |
Проверяет, что левый аргумент больше правого. |
| Использование |
|
Может использоваться не только с числовыми типами, но и с типами для даты и времени.
Посмотреть примеры
SELECT
1 > 0 AS result_1,
0 > 1 AS result_2, -- false expected
1 > NULL AS result_3,
'2026-01-01'::DATE > '2025-01-01'::DATE AS result_4,
'15:00'::TIME > '00:00'::TIME AS result_5;
+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 |
+----------+----------+----------+----------+----------+
| true | false | null | true | true |
+----------+----------+----------+----------+----------+
Оператор <=
| Описание |
Проверяет, что левый аргумент меньше или равен правому. |
| Использование |
|
Может использоваться не только с числовыми типами, но и с типами для даты и времени.
Для проверки интервалов используйте BETWEEN.
|
Посмотреть примеры
SELECT
1 <= 1 AS result_1,
1 <= 0 AS result_2, -- false expected
1 <= NULL AS result_3,
'2025-01-01'::DATE <= '2026-01-01'::DATE AS result_4,
'00:00'::TIME <= '15:00'::TIME AS result_5;
+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 |
+----------+----------+----------+----------+----------+
| true | false | null | true | true |
+----------+----------+----------+----------+----------+
Оператор >=
| Описание |
Проверяет, что левый аргумент больше или равен правому. |
| Использование |
|
Может использоваться не только с числовыми типами, но и с типами для даты и времени.
Для проверки интервалов используйте BETWEEN.
|
Посмотреть примеры
SELECT
1 >= 0 AS result_1,
0 >= 1 AS result_2, -- false expected
1 >= NULL AS result_3,
'2026-01-01'::DATE >= '2025-01-01'::DATE AS result_4,
'15:00'::TIME >= '00:00'::TIME AS result_5;
+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 |
+----------+----------+----------+----------+----------+
| true | false | null | true | true |
+----------+----------+----------+----------+----------+
Оператор =
| Описание |
Проверяет, что левый аргумент равен правому. |
| Использование |
|
| Псевдонимы |
|
Может использоваться не только с числовыми типами, но и с типами для даты и времени.
Посмотреть примеры
SELECT
1 == 1 AS result_1,
1 = 1 AS result_2,
1 = 0 AS result_3, -- false expected
1 = NULL AS result_4,
'2026-01-01'::DATE = '2026-01-01 00:00'::DATE AS result_5,
'00:00'::TIME = '00:00:00'::TIME AS result_6,
'00:00'::TIME = '12:00'::TIME AS result_7; -- false expected
+----------+----------+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 | result_6 | result_7 |
+----------+----------+----------+----------+----------+----------+----------+
| true | true | false | null | true | true | false |
+----------+----------+----------+----------+----------+----------+----------+
Оператор <>
| Описание |
Проверяет, что левый аргумент не равен правому. |
| Использование |
|
| Псевдонимы |
|
Синонимичен конструкции NOT <num> = <num>.
Может использоваться не только с числовыми типами, но и с типами для даты и времени.
Посмотреть примеры
SELECT
1 <> 0 AS result_1,
1 != 0 AS result_2,
NOT 1 = 0 AS result_3,
1 <> NULL AS result_4,
'2026-01-02'::DATE <> '2026-02-01'::DATE AS result_5,
'00:00'::TIME <> '00:00:01'::TIME AS result_6,
'00:00'::TIME <> '12:00'::TIME AS result_7;
+----------+----------+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 | result_6 | result_7 |
+----------+----------+----------+----------+----------+----------+----------+
| true | true | true | null | true | true | true |
+----------+----------+----------+----------+----------+----------+----------+
Оператор BETWEEN
| Описание |
Проверяет, что первый аргумент лежит в интервале между вторым и третьим аргументами включительно. |
| Использование |
|
Синонимичен конструкции <num> <= <num> AND <num> <= <num>.
Может использоваться не только с числовыми типами, но и с типами для даты и времени.
Посмотреть примеры
SELECT
2 BETWEEN 1 AND 3 AS result_1,
1 BETWEEN 1 AND 1 AS result_2,
NULL BETWEEN 1 AND 1 AS result_3,
'2026-01-02'::DATE BETWEEN '2026-01-01'::DATE AND '2026-01-03'::DATE AS result_4,
'00:00:01'::TIME BETWEEN '00:00'::TIME AND '00:00:02'::TIME AS result_5;
+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 |
+----------+----------+----------+----------+----------+
| true | true | null | true | true |
+----------+----------+----------+----------+----------+