Числовые функции в SQL используются в основном для цифровой манипуляции и/или математических расчетов. В следующей таблице приведены числовые функции:
No. | Описание функций |
---|---|
1 | ABS() Возвращает абсолютное значение числового выражения. |
2 | ACOS() Возвращает арккосинус числового выражения. Возвращает значение NULL, если значение не находится в диапазоне от -1 до 1. |
3 | ASIN() Возвращает арксинус числового выражения. Возвращает NULL, если значение не в диапазоне от -1 до 1 |
4 | ATAN() Возвращает арктангенс числового выражения. |
5 | ATAN2() Возвращает арктангенс двух переменных, передаваемых ему. |
6 | BIT_AND() Возвращает побитовое AND всех битов в переданных выражение. |
7 | BIT_COUNT() Возвращает строковое представление двоичного значения, переданного ему. |
8 | BIT_OR() Возвращает побитовое OR всех битов в пройденному выражении. |
9 | CEIL() Возвращает наименьшее целое значение, которое не меньше, чем передаваемое числовое выражение |
10 | CEILING() Возвращает наименьшее целое значение, которое не меньше, чем передаваемое числовое выражение |
11 | CONV() Преобразование числовое выражение из одной базы в другую. |
12 | COS() Возвращает косинус передаваемого числового выражения. Числовое выражение должно быть выражено в радианах. |
13 | СОТ() Возвращает котангенс передаваемого числового выражения. |
14 | DEGREES() Возвращает числовое выражение, преобразованного из радиан в градусы. |
15 | EXP() Возвращает основание натурального логарифма (е), возведенный в степень передаваемого числового выражения. |
16 | FLOOR() Возвращает наибольшее целое значение, которое не больше, чем передаваемое числовое выражение. |
17 | ФОРМАТ() Возвращает числовое выражение, округленное до нескольких знаков после запятой. |
18 | GREATEST() Возвращает наибольшее значение входного выражения. |
19 | INTERVAL() Принимает несколько выражений EXP1, exp2 и ехр3 так далее .. и возвращает 0, если exp1 меньше exp2, возвращает 1, если exp1 меньше exp3 и так далее. |
20 | LEAST() Возвращает минимальный многозначный вход, когда дается два или более. |
21 | LOG() Возвращает натуральный логарифм переданного числового выражения. |
22 | LOG10() Возвращает основание 10 логарифм переданного числового выражения. |
23 | MOD() Возвращает остаток от деления одного выражения с помощью другого выражения. |
24 | OCT() Возвращает строковое представление восьмеричного значения переданного числового выражения. Возвращает NULL, если передается значение NULL. |
25 | PI() Возвращает значение числа пи |
26 | POW() Возвращает значение одного выражения, возведенное в степень другого выражения |
27 | POWER() Возвращает значение одного выражения, возведенное в степень другого выражения |
28 | RADIANS() Возвращает значение выражения, преобразованное из градусов в радианы. |
29 | ROUND() Возвращает числовое выражение, округленное до целого числа. Может использоваться, чтобы закруглить выражение для числа десятичных знаков |
30 | SIN() Возвращает синус числового выражения заданного в радианах. |
31 | SQRT() Возвращает неотрицательный квадратный корень числового выражения. |
32 | STD() Возвращает стандартное отклонение числового выражения. |
33 | STDDEV() Возвращает стандартное отклонение числового выражения. |
34 | TAN() Возвращает тангенс числового выражения, выраженного в радианах. |
35 | TRUNCATE() Возвращает число exp1 усекаемое до exp2 знаков после запятой. Если exp2 равен 0, то результат не будет иметь десятичную точку. |
Функция ABS() возвращает абсолютное значение X. Рассмотрим следующий пример:
SQL> SELECT ABS(2); +---------------------------------------------------------+ | ABS(2) | +---------------------------------------------------------+ | 2 | +---------------------------------------------------------+ 1 row in set (0.00 sec) SQL> SELECT ABS(-2); +---------------------------------------------------------+ | ABS(2) | +---------------------------------------------------------+ | 2 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает арккосинус X. Значение X должно лежать в пределах от -1 до 1, или будет возвращен NULL. Рассмотрим следующий пример:
SQL> SELECT ACOS(1); +---------------------------------------------------------+ | ACOS(1) | +---------------------------------------------------------+ | 0.000000 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Функция ASIN() возвращает арксинус X. Значение X должно быть в диапазоне от -1 до 1, или возвращается NULL.
SQL> SELECT ASIN(1); +---------------------------------------------------------+ | ASIN(1) | +---------------------------------------------------------+ | 1.5707963267949 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает арктангенс X.
SQL> SELECT ATAN(1); +---------------------------------------------------------+ | ATAN(1) | +---------------------------------------------------------+ | 0.78539816339745 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает арктангенс двух аргументов: X и Y. Это похоже на арктангенс Y/X, за исключением того, что знаки обоих используются для поиска квадранта.
SQL> SELECT ATAN2(3,6); +---------------------------------------------------------+ | ATAN2(3,6) | +---------------------------------------------------------+ | 0.46364760900081 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Функция BIT_AND возвращает побитовое И для всех битов в выражении. Основной предпосылкой является то, что если две соответствующие бита одинаковы, то побитовое И будет возвращать 1, в то время как, если они различны, побитовое операция И вернет 0. Сама функция возвращает 64-битное целое значение. Если нет совпадений, то он возвращает 18446744073709551615. Следующий пример выполняет функцию BIT_AND на колонке PRICE в таблице CARS, сгруппированной по MAKER:
SQL> SELECT MAKER, BIT_AND(PRICE) BITS FROM CARS GROUP BY MAKER +---------------------------------------------------------+ |MAKER BITS | +---------------------------------------------------------+ |CHRYSLER 512 | |FORD 12488 | |HONDA 2144 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Функция BIT_COUNT() возвращает число битов, которые указанные в numeric_value. Следующий пример с помощью функции BIT_COUNT() возвращает число активных бит для диапазона чисел:
SQL> SELECT BIT_COUNT(2) AS TWO, BIT_COUNT(4) AS FOUR, BIT_COUNT(7) AS SEVEN +-----+------+-------+ | TWO | FOUR | SEVEN | +-----+------+-------+ | 1 | 1 | 3 | +-----+------+-------+ 1 row in set (0.00 sec)
Функция BIT_OR() возвращает побитовое ИЛИ всех битов в выражении. Основная цель функции побитового ИЛИ является то, что она возвращает 0, если совпадают соответствующие биты и 1, если они этого не происходит. Функция возвращает 64-разрядное целое число, а если нет соответствующих строк, то он возвращает 0. Следующий пример выполняет функцию BIT_OR() на колонке PRICE таблицы CARS , сгруппированные по MAKER:
SQL> SELECT MAKER, BIT_OR(PRICE) BITS FROM CARS GROUP BY MAKER +---------------------------------------------------------+ |MAKER BITS | +---------------------------------------------------------+ |CHRYSLER 62293 | |FORD 16127 | |HONDA 32766 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эти функции возвращают наименьшее целое значение, которое не меньше, чем X. Рассмотрим следующий пример:
SQL> SELECT CEILING(3.46); +---------------------------------------------------------+ | CEILING(3.46) | +---------------------------------------------------------+ | 4 | +---------------------------------------------------------+ 1 row in set (0.00 sec) SQL> SELECT CEIL(-6.43); +---------------------------------------------------------+ | CEIL(-6.43) | +---------------------------------------------------------+ | -6 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Назначение функции CONV() заключается в преобразовании чисел между различными системами счисления. Функция возвращает строку значения N, преобразованную из from_base в to_base. Минимальное базовое значение равно 2, а максимальное значение 36. Если какой-либо из аргументов равен NULL, то функция возвращает значение NULL. Рассмотрим следующий пример, который преобразует число 5 от основания 16 к основанию 2:
SQL> SELECT CONV(5,16,2); +---------------------------------------------------------+ | CONV(5,16,2) | +---------------------------------------------------------+ | 101 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает косинус X. Значение X задается в радианах.
SQL>SELECT COS(90); +---------------------------------------------------------+ | COS(90) | +---------------------------------------------------------+ | -0.44807361612917 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает котангенс X. Рассмотрим следующий пример:
SQL>SELECT COT(1); +---------------------------------------------------------+ | COT(1) | +---------------------------------------------------------+ | 0.64209261593433 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает значение X преобразованную из радиан в градусы.
SQL>SELECT DEGREES(PI()); +---------------------------------------------------------+ | DEGREES(PI()) | +---------------------------------------------------------+ | 180.000000 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает значение е (основание натурального логарифма), возведенное в X.
SQL>SELECT EXP(3); +---------------------------------------------------------+ | EXP(3) | +---------------------------------------------------------+ | 20.085537 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает наибольшее целое значение, которое не больше, чем X.
SQL>SELECT FLOOR(7.55); +---------------------------------------------------------+ | FLOOR(7.55) | +---------------------------------------------------------+ | 7 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Функция Format() используется для форматирования числа х в следующем формате: ###, ###, ### ## усекается до D знаков после запятой.. Следующий пример демонстрирует использование и вывод функции FORMAT():
SQL>SELECT FORMAT(423423234.65434453,2); +---------------------------------------------------------+ | FORMAT(423423234.65434453,2) | +---------------------------------------------------------+ | 423,423,234.65 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Функция GREATEST() возвращает наибольшее значение в наборе входных параметров (n1, n2, n3, n-й и так далее). Следующий пример использует функцию GREATEST() для возвращения наибольшее число из набора числовых значений:
SQL>SELECT GREATEST(3,5,1,8,33,99,34,55,67,43); +---------------------------------------------------------+ | GREATEST(3,5,1,8,33,99,34,55,67,43) | +---------------------------------------------------------+ | 99 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Функция INTERVAL() сравнивает значение N в списке значений (N1, N2, N3, и так далее). Функция возвращает 0, если N <N1, 1, если N <N2, 2, если N <N3, и так далее. Она возвращает .1 если N является NULL. Список значений должен быть в виде N1 <N2 <N3 для того, чтобы работать должным образом. Следующий код представляет собой простой пример того, как работает функция INTERVAL():
SQL>SELECT INTERVAL(6,1,2,3,4,5,6,7,8,9,10); +---------------------------------------------------------+ | INTERVAL(6,1,2,3,4,5,6,7,8,9,10) | +---------------------------------------------------------+ | 6 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Помните, что 6-это нулевой индекс в списке значение первое значение, которое было больше, чем N. в нашем случае 7 было неподходящее значение и находится в шестом слоте индекса.
Функция LEAST() противоположна функции GREATEST(). Его цель состоит в том, чтобы вернуть наименее оцененный элемент из списка значений (N1, N2, N3, и так далее). Следующий пример показывает правильное использование и вывод для функции LEAST():
SQL>SELECT LEAST(3,5,1,8,33,99,34,55,67,43); +---------------------------------------------------------+ | LEAST(3,5,1,8,33,99,34,55,67,43) | +---------------------------------------------------------+ | 1 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Единственный вариант аргумента функции возвращает натуральный логарифм X. Если вызывается с двумя аргументами, она возвращает логарифм X для произвольного основания B. Рассмотрим следующий пример:
SQL>SELECT LOG(45); +---------------------------------------------------------+ | LOG(45) | +---------------------------------------------------------+ | 3.806662 | +---------------------------------------------------------+ 1 row in set (0.00 sec) SQL>SELECT LOG(2,65536); +---------------------------------------------------------+ | LOG(2,65536) | +---------------------------------------------------------+ | 16.000000 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает основание 10 логарифма X.
SQL>SELECT LOG10(100); +---------------------------------------------------------+ | LOG10(100) | +---------------------------------------------------------+ | 2.000000 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает остаток от N деленного на М. Рассмотрим следующий пример:
SQL>SELECT MOD(29,3); +---------------------------------------------------------+ | MOD(29,3) | +---------------------------------------------------------+ | 2 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Функция OCT() возвращает строковое представление восьмеричного числа N. Это эквивалентно использованию CONV(N, 10,8).
SQL>SELECT OCT(12); +---------------------------------------------------------+ | OCT(12) | +---------------------------------------------------------+ | 14 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция просто возвращает значение числа pi. SQL внутренне сохраняет полную двойную точность значение числа пи.
SQL>SELECT PI(); +---------------------------------------------------------+ | PI() | +---------------------------------------------------------+ | 3.141593 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эти две функции возвращают значение X, возведенное в степень У.
SQL> SELECT POWER(3,3); +---------------------------------------------------------+ | POWER(3,3) | +---------------------------------------------------------+ | 27 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает значение X, преобразованное из градусов в радианы.
SQL>SELECT RADIANS(90); +---------------------------------------------------------+ | RADIANS(90) | +---------------------------------------------------------+ |1.570796 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает X округленный до ближайшего целого числа. Если второй аргумент D, то функция возвращает Х округляемое до D знаков после запятой. D должен быть положительным или все цифры справа от десятичной точки будут удалены. Рассмотрим следующий пример:
SQL>SELECT ROUND(5.693893); +---------------------------------------------------------+ | ROUND(5.693893) | +---------------------------------------------------------+ | 6 | +---------------------------------------------------------+ 1 row in set (0.00 sec) SQL>SELECT ROUND(5.693893,2); +---------------------------------------------------------+ | ROUND(5.693893,2) | +---------------------------------------------------------+ | 5.69 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает знак X (отрицательный, нулевой или положительный) как -1, 0 или 1.
SQL>SELECT SIGN(-4.65); +---------------------------------------------------------+ | SIGN(-4.65) | +---------------------------------------------------------+ | -1 | +---------------------------------------------------------+ 1 row in set (0.00 sec) SQL>SELECT SIGN(0); +---------------------------------------------------------+ | SIGN(0) | +---------------------------------------------------------+ | 0 | +---------------------------------------------------------+ 1 row in set (0.00 sec) SQL>SELECT SIGN(4.65); +---------------------------------------------------------+ | SIGN(4.65) | +---------------------------------------------------------+ | 1 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает синус X. Рассмотрим следующий пример:
SQL>SELECT SIN(90); +---------------------------------------------------------+ | SIN(90) | +---------------------------------------------------------+ | 0.893997 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает неотрицательный квадратный корень из X. Рассмотрим следующий пример:
SQL>SELECT SQRT(49); +---------------------------------------------------------+ | SQRT(49) | +---------------------------------------------------------+ | 7 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Функция STD() используются для возврата стандартного отклонения выражения. Это равносильно тому, как квадратный корень из выражения VARIANCE(). Следующий пример вычисляет стандартное отклонение колонны PRICE в нашей таблице CARS:
SQL>SELECT STD(PRICE) STD_DEVIATION FROM CARS; +---------------------------------------------------------+ | STD_DEVIATION | +---------------------------------------------------------+ | 7650.2146 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция возвращает тангенс аргумента X, которая выражается в радианах.
SQL>SELECT TAN(45); +---------------------------------------------------------+ | TAN(45) | +---------------------------------------------------------+ | 1.619775 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Эта функция используется, чтобы вернуть значение X, усеченное до D числа знаков после запятой. Если D равно 0, то десятичная точка удаляется. Если D является отрицательным, то D число значений в целой части величины усекается. Рассмотрим следующий пример:
SQL>SELECT TRUNCATE(7.536432,2); +---------------------------------------------------------+ | TRUNCATE(7.536432,2) | +---------------------------------------------------------+ | 7.53 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Мне кажется, что человек, который понимает язык этой статьи, уже знает ответ на вопрос, в чём разница между статическим и динамическим SQL. А я не понял. Я хотел понять, в чём разница между статическим и динамическим запросом. Яндекс даёт эту статью на первой странице в ответ на запрос «Что такое динамический запрос». Вроде статья должна ответить на этот вопрос, но уровень явно для академиков.