Функция FLOOR
Функция FLOOR возвращает наибольшее целое значение, которое меньше указанного входного значения.
Синтаксис SQL 2003 поддерживают все платформы.
FLOOR (выражение)
Примеры
Если вы передаете в функцию положительное число, то действие функции будет состоять в удалении всего, что стоит после десятичной точки.
SELECT
FLOOR(100.1)
FROM dual;
FLOOR(100.1)
100
Однако запомните, что в случае отрицательных чисел округление в меньшую сторону соответствует увеличению абсолютного значения.
SELECT
FLOOR(-100.1)
FROM dual;
FLOOR(-100.1)
-101
Чтобы получить эффект, противоположный действию функции FLOOR, используйте функцию CEIL.
Функция LN возвращает натуральный логарифм числа, то есть степень, в которую нужно возвести математическую константу е (приблизительно 2.718281), чтобы в результате получить заданное число.
LN (выражение)
Платформы DB2, Oracle и PostgreSQL поддерживают для функции LN синтаксис SQL 2003. DB2 и PostgreSQL также поддерживают функцию LOG как синоним LN.
В MySQL и SQL Server есть своя собственная функция для вычисления натурального логарифма — LOG.
LOG (выражение)
Пример
В следующем примере для Oracle вычисляется натуральный логарифм числа, приближенно равного математической константе.
SELECT
LN(2.718281)
FROM dual;
LN(2.718281)
.999999695
Чтобы выполнить противоположную операцию, используйте функцию ЕХР.
Функция MOD возвращает остаток от деления делимого на делитель. Все платформы поддерживают синтаксис инструкции MOD стандарта SQL 2003.
MOD (делимое, делитель)
Стандартная функция MOD предназначена для получения остатка от деления делимого на делитель. Если делитель равен нулю, то возвращается делимое.
Пример
Ниже показано, как можно использовать функцию MOD в инструкции SELECT.
SELECT
MOD(12, 5)
FROM NUMBERS 2;
Функция POSITION возвращает целое число, показывающее начальное положение строки в строке поиска.
POSITION(строка 1 IN строка2)
Стандартная функция POSITION предназначена для получения положения первого вхождения заданной строки (строка!) в строке поиска (строка!). Функция возвращает 0, если строка! не встречается в строке!, и NULL — если любой из аргументов равен NULL.
В DB2 есть эквивалентная функция POSSTR.
Платформа MySQL поддерживает функцию POSITION в соответствии со стандартом SQL 2003.
Функция POWER используется для возведения числа в указанную степень.
POWER (основание, показатель)
Результатом выполнения данной функции является основание, возведенное в степень, определяемую показателем. Если основание отрицательно, то показатель должен быть целым числом.
DB2, Oracle, PostgreSQL и SQL Server
Все эти производители поддерживают синтаксис SQL 2003.
В Oracle есть эквивалентная функция INSTR.
Платформа PostgreSQL поддерживает функцию POSITION в соответствии со стандартом SQL 2003.
Платформа MySQL поддерживает данную функциональность, не этого ключевое слово POW.
P0W (основание, показатель)
Пример
Возведение положительного числа в степень достаточно очевидно.
SELECT
POWER(10.3)
FROM dual;
POWER(10.3)
1000
Любое число, возведенное в степень 0, равно 1.
SELECT
POWER(0.0)
FROM dual;
POWER(0.0)
1
Отрицательный показатель смещает десятичную точку влево.
SELECT
POWER(10, -3)
FROM dual;
POWER(10, -3)
.001
Функция SQRT возвращает квадратный корень числа.
Все платформы поддерживают синтаксис SQL 2003.
SORT (выражение)
Пример
SELECT
SQRT(100)
FROM dual;
SQRT(100)
10
Функция WIDTH BUCKET присваивает значения столбцам равноширинной гистограммы.
В следующем синтаксисе выражение представляет собой значение, которое присваивается столбцу гистограммы. Как правило, выражение основывается на одном или нескольких столбцах таблицы, возвращаемых запросом.
WIDTH BUCKET(выражение, min, max, столбцы_гистограммы)
Параметр столбцы гистограммы показывает количество создаваемых столбцов гистограммы в диапазоне значений от min до max. Значение параметра min включается в диапазон, а значение параметра max не включается. Значение выражения присваивается одному из столбцов гистограммы, после чего функция возвращает номер соответствующего столбца гистограммы. Если выражение не подпадает под указанный диапазон столбцов, функция возвращает либо 0, либо max + 1, в зависимости от того, будет выражение меньшим, чем min, или большим или равным max.
Примеры
В следующем примере целочисленные значения от 1 до 10 распределяются между двумя столбцами гистограммы.
Следующий пример более интересный. 11 значений от 1 до 10 распределяются между тремя столбцами гистограммы для иллюстрации различия между значением min, которое включается в диапазон, и значением max, которое в диапазон не включается.
SELECT
х,
WIDTH_BUCKET(x, 1.10.3)
FROM pivot;
Особое внимание обратите на результаты сХ =, Х= 9.9 и Х- 10. Входное значение параметра ими, то есть в данном примере — 1, попадает в первый столбец, обозначая нижнюю границу диапазона, поскольку столбец № 1 определяется как х >= min. Однако входное значение параметра max не входит в столбец с максимальными значениями. В данном примере число 10 попадает в столбец переполнения, с номером max + 1. Значение 9.9 попадает в столбец № 3, и это иллюстрирует правило, согласно которому верхняя граница диапазона определяется как х < max.