Рассмотрим наиболее часто используемые группы функций языкаSQL.
Числовые функции. Предназначены для вычисления степени числа, абсолютного значения, округления и усечения числа с заданной точно-стью, вычисления тригонометрических значений. Опишем некоторые чи-словые функции.
Функция ABS(n) возвращает абсолютное значение аргументаn, имеющего числовой тип.
Функция ROUND(n, [r]) осуществляет округление значения аргумента n, имеющего числовой тип, с точностью до количества указанных знаков r. При этом если значениеr положительно, то округление производится до указанного количества знаков после запятой, если значениеr отрица-тельно, то округление производится до указанного количества знаков до запятой. Приr = 0 функция возвращает округленную целую часть аргу-ментаn.
Функция MOD(m, n) возвращает остаток от деления целочисленного аргумента m на целочисленный аргументn.
Функция POWER(m,n) возвращает аргументm, имеющий числовой тип, возведенный в степень, заданную аргументомn, имеющим также числовой тип.
Функция SQRT(m) возвращает квадратный корень из аргументаn, имеющего числовой тип.
Символьные функции.
Предназначены для работы со строками. Они могут возвращать либо строку, либо целое значение. Ниже приводится описание некоторых символьных функций.
Функция UPPER(str) возвращает строкуstr, все символы которой пре-образованы в верхний регистр.
Функция LENGTH(str) возвращает длину строкиstr в символах.
Функция SUBSTR(str, n, m) выделяет из строкиstr подстроку длины n, начиная с символа в позицииm.
Функция LPAD(str, n, chr) возвращает строкуstr, дополненную слева указанным символомchr до указанной длиныn.
Функция RPAD(str, n, chr) возвращает строкуstr, дополненную справа указанным символомchr до указанной длиныn.
Функции работы с датами.
Предназначены для работы с данными типаDATE. Ниже описываются некоторые функции этой группы.
Функция ADD_MONTHS(data, n) добавляет к указанной датеdata или вычитает из нееn месяцев.
Функция MONTHS_BETWEEN(data1, data2) возвращает количество месяцев, находящихся между указанными датамиdata1 иdata2.
Функция LAST_DAY(data) возвращает последний день месяца, ука-занного датойdata.
Функции преобразования типа. В основном используются для пре-образования данных символьного типа в числовой или в типDATE и, наоборот, для преобразования данных числового типа или типаDATE в символьный тип. Преобразование осуществляется в соответствии с зада-ваемым форматом. Формат преобразования имеет вид символьной стро-ки, где каждый символ или группа символов имеет определенное назна-чение.
Функция TO_CHAR(d1, [fmt]) преобразует значениеd1 типаDATE в значение типаVARCHAR2 по форматуfmt.
Функция TO_CHAR(n1, [fmt]) преобразует значениеn1 типа NUMBER в значение типаVARCHAR2 по форматуfmt.
Функция TO_DATE(char, [fmt]) преобразует значениеchar типа CHAR илиVARCHAR2 в значение типаDATE по форматуfmt.
Функция TO_NUMBER(char, [fmt]) преобразует значениеchar типа CHAR илиVARCHAR2 в значение типаNUMBER по форматуfmt.
В форматах для даты используются следующие группы символов:
DD – задает номер дня месяца в диапазоне от1 до31;
DAY – задает полное название дня недели;
MON – задает краткое название месяца;
MONTH – задает полное название месяца;
YY – задает две последние цифры номера календарного года;
YYYY – задает полный номер календарного года.
В форматах для чисел используются следующие символы:
цифра9 – задает цифру;
символ точка(.) – задает десятичную точку;
цифра0 – задает обязательный ноль;
букваs – задает обязательное наличие знака{+; –};
символ$ – задает знак доллара, проставляемый в начале числа.
Групповые функции.
Выполняют операции над группами строк.
ФункцияCOUNT({*}) – возвращает количество строк в группе.
ФункцияCOUNT([DISTINCT] выражение) – возвращает количество строк в группе, игнорируя значениеNULL.
ФункцияSUM([DISTINCT] выражение) – возвращает сумму значений указанного выражения для группы строк или списка значений, игнорируя значениеNULL.
ФункцияAVG([DISTINCT] выражение) – возвращает среднее значе-ние указанного выражения для группы строк или списка значений, игно-рируя значениеNULL.
ФункцияMIN([DISTINCT] выражение) – возвращает минимальное из значений указанного выражения для группы строк или списка значений, игнорируя значениеNULL.
ФункцияMAX([DISTINCT] выражение) – возвращает максимальное из значений указанного выражения для группы строк или списка значе-ний, игнорируя значениеNULL.
ФразаDISTINCT предписывает групповым функциям рассматривать только различные значения выражения.
Другие функции. ФункцияNVL(выражение1, выражение2) обраба-тывает пустое значениеNULL. Если значение выражения1 равноNULL, то функция возвращает значение выражения2; если же значение выраже-ния1 не равноNULL, то функция возвращает значение выражения1.