Математические функции
random ()
Синтаксис:
randon ()
Функция random() вызывается без аргументов и возвращает псевдослучайное число типа double precision в интервале от 0.0 до 1.0. При каждом вызове random() генерируется новое значение, даже если функция вызывается несколько раз в одном запросе.
Обычно функция random() используется в сочетании с математическими операторами (например, + и *) для получения псевдослучайных чисел в заданном интервале и последующим вызовом одной из функций округления (round(), trunc() и т. д.).
Пример:
testdb=# SELECT randonK) AS natural random, testdb-# round(randomO * 9) + I AS one_through_ten. testdb-# truncC randonK) * 99) + 1 AS one_through_one_hundred: natural_random | one_through_ten | one_through_one_hundred 0.478887704424042 | 2 | 37 (1 row)
round ()
Синтаксис:
round(x) round(x.s)
Функция round() вызывается с одним или с двумя аргументами. Первый аргумент х относится к типу numeric или double precision и определяет округляемое число. Второй необязательный аргумент s относится к типу integer и определяет количество цифр в дробной части после округления. Тип возвращаемого значения совпадает с типом первого аргумента.
Если значение аргумента s больше количества цифр в дробной части х, недостающие позиции заполняются нулями.
Пример:
testdb=# SELECT round(l.O) AS one, testdb-# round(l.l) AS "one point one", testdb | round(1.5) AS "one point five", testdb-# roundd.8) AS "one point eight"; one | one point one | one point five | one point eight 1 | 1 | 2 | 2 (1 row) testdb=# SELECT round(1.4949. 1) AS one_digit_scale. testdb-# roundd.4949, 3) AS three_digit_scale. testdb-# roundd.4949, 10) AS ten_digit_scale. testdb-# roundd.4949. 0) AS rounded; one_digit_scale | three_digit_scale | ten_digit_scale rounded 1.5 1.495 | 1.4949000000 1 (1 row)
Sin()
Синтаксис:
Sin(x)
Функция sin () получает один аргумент х типа double precision, представляющий угол в радианах, и возвращает синус этого угла в виде значения типа double precision.
Пример:
testdb=# SELECT sin(pi() / 4) AS quarter_pi, testdb-# sin(pi() / 2) AS half_pi: quarter_pi | half_pi 0.707106781186547 | (1 row)