Функции SQL и ORACLE7

Функции могут быть использованы везде, где используются переменные, столбцы
или выражения (соответствующего типа). Их обычно подразделяют на числовые, сим-
вольные, групповые (функции SQL), функции работы с датами (дата и время), функ-
ции преобразования, и прочие функции.


В описаниях функций используются следующие параметры:

char, char1, char2,… константы в апострофах или выражения типа CHAR
d, d1, d2 константы в апострофах или выражения типа DATE
expr, expr1, expr2,… любые выражения
fmt формат данных
k, m, n любые числовые константы или выражения типа NUMBER.
nls выражение вида ‘NLS_SORT = name’.
raw исходные данные
rowid внутренний уникальный идентификатор строки
set, set1, set2 наборы символов
z1, z2 часовые пояса (см. «Функции работы с датами и временем»)

Числовые функции

Функции       Возвращаемое значение
------------- ----------------------------------------------------------------
ABS(n)        Абсолютное значение n, большее или равное n.
CEIL(n)       Наименьшее целое, не меньшее n.
COS(n)        Косинус n, заданного в радианах.
COSH(n)       Гиперболический косинус n в радианах.
EXP(n)        Возведение e (exp) в степень n (где е = 2.7182818).
FLOOR(n)      Наибольшее целое, меньшее или равное n.
LN(n)         Натуральный логарифм n, где n > 0.
LOG(m,n)      Основание m логарифма n.
MOD(m,n)      Остаток от деления m на n.
POWER(m,n)    m в степени n. Если n не целое, то оно усекается до целого.
ROUND(n[,m])  n, округленное до m-того десятичного знака; если m опущено, то
              оно принимается равным 0. m может быть отрицательным для округ-
              ления цифр левее десятичной точки.
SIGN(n)       Если n<0, то -1; если n=0, то 0; если n>0, то 1.
SIN(n)        Синус n, заданного в радианах.
SINH(n)       Гиперболический синус n в радианах.
SQRT(n)       Квадратный корень из n; если n < 0, то NULL.
TAN(n)        Тангенс n, заданного в радианах.
TANH(n)       Гиперболический тангенс n в радианах.
TRUNC(n[,m])  n, усеченное до m десятичных знаков; если m опущено, то оно
              принимается равным 0. m может быть отрицательным для усечения
              (обнуления) цифр слева от десятичной точки.

Символьные функции

Функция          Возвращаемое значение
---------------- -------------------------------------------------------------
ASCII(char)      Код ASCII первого символа символьной переменной "char".
CHR(n)           Символ, код ASCII которого равен n
CONCAT(char1,    Соединяет (конкатенирует) строку "char1" со строкой "char2".
  char2)         (Эквивалентна выражению: char1 || char2.)
INITCAP(char)    Символьная переменная с первыми буквами слов, начинающихся
                 с заглавной буквы.
INSTR(char1,     Позиция m-того включения "char2" в "char1" при начале поиска
  char2[,n[,m]]) с позиции n. Если m опущено, по умолчанию предполагается 1;
                 аналогично для n. Позиции даются относительно первого знака
                 "char1", даже если n > 1.
INSTRB(char1,    Эквивалентна INSTR, но n и результат возвращаются в байтах,
  char2[,n[,m]]) а не в позициях символов. Эту функцию полезно использовать
                 при работе с многобайтовыми символьными строками.
LENGTH(char)     Длина в знаках символьной переменной "char".
LENGTHB(char)    Длина в байтах символьной переменной "char".
LOWER(char)      "char", где все буквы преобразованы в строчные (маленькие).
LPAD(char1,n     Строка "char1", дополненная слева до длины n последователь-
  [,char2])      ностью символов из строки "char2" с повторением этой после-
                 довательности столько раз сколько необходимо. Если "char2"
                 опущено, то для заполнения используются пробелы.
LTRIM(char       Удаляет из "char" начальные знаки до тех пор, пока не появит-
  [,set])        ся знак, отсутствующий среди знаков "set". При отсутствии
                 "set" из "char" удаляются все левые пробелы.
NLS_INITCAP(char Аналог INITCAP, но необязательный аргумент "nls" позволяет
  [,nls])        задать используемый в функции национальный язык.
NLS_LOWER(char   Аналог LOWER, но необязательный аргумент "nls" позволяет
  [,nls])        задать используемый в функции национальный язык.
NLSSORT(char     Байтовая строка, использованная для сортировки "char" на базе
  [,nls])        языка, заданного аргументом "nls". Эту функцию полезно приме-
                 нять для сравнения строк в различных языках.
NLS_UPPER(char   Аналог UPPER, но необязательный аргумент "nls" позволяет
  [,nls])        задать используемый в функции национальный язык.
REPLACE(char1,   Строка, полученная из "char1", в которой все вхождения "char2"
  char2[,char3]) заменены на "char3". Если "char3" отсутствует,
                 то все вхождения "char2" в "char1" - удаляются.
RPAD(char1,n     строка "char1", дополненная справа символами "char2", с повто-
  [,char2])      рением, если необходимо; если "char2" опущена, "char1" допол-
                 няется пробелами.
RTRIM(char       Удаляет из "char" конечные знаки до тех пор, пока не появится
  [,set])        знак, отсутствующий среди знаков "set". При отсутствии
                 "set" из "char" удаляются все правые пробелы.
SOUNDEX(char)    Фонетическое представление "char" (четырехсимвольное представ-
                 ление, показывающее, как звучит начало "char").
SUBSTR(char,m    Подстрока, получаемая из "char", начиная с символа m. Если
  [,n])          задано n, то подстрока ограничивается n символами. При отри-
                 цательном m символы отсчитываются с конца "char".
SUBSTRB(char,m   Эквивалентно SUBSTR, но аргументы m и n выражаются не в
  [,n])          символах, а в байтах. Эту функцию полезно использовать при
                 работе с многобайтовыми символьными строками.
TRANSLATE(char,  строка, полученная трансляцией "char" в наборе "set1" в
  set1, set2)    наборе "set2".
UPPFR(char)      строка, полученная из "char" заменой ее строчных букв на
                 заглавные буквы.

Функции работы с датами и временем

Функция           Возвращаемое значение
----------------- ------------------------------------------------------------
ADD_MONTHS(d,n)   Дата d плюс n месяцев.
LAST_DAY(d)       Дата последнего дня месяца, заданного датой d.
MONTHS_BETWEEN    Количество месяцев между датами d1 и d2. Eсли d1 > d2, то
  (d1,d2)         результат положителен, иначе отрицателен.
NEW_TIME(d,z1,z2) Преобразует дату и время, заданное d в часовом поясе z1, в
                  дату и время в часовом поясе z2. Символьные значения z1 и z2
                  выбираются из следующего списка:
                     AST,ADT   Атлантическое стандартное и дневное время;
                     BST,BDT   Берингово стандартное и дневное время;
                     CST,CDT   Центральное стандартное и дневное время;
                     EST,EDT   Восточное стандартное и дневное время;
                     GMT       Среднее время по Гринвичу;
                     HST,HDT   Аляски-Гаваев стандартное и дневное время;
                     MST,MDT   Монтаны стандартное и дневное время;
                     NST       Нью-Фаунленда стандартное время;
                     PST,PDT   Тихоокеанское стандартное и дневное время;
                     YST,YDT   Юкона стандартное и дневное время.
NEXT_DAY(d,char)  Дата первого из дней недели, обозначенной "char", которая
                  больше или равна d.
ROUND(d[,fmt])    Значение d, округленное до ближайшего числа в формате,
                  заданном "fmt" (например, год или месяц). По умолчанию DD.
SYSDATE           Текущая дата и время.
TRUNC(d[,fmt])    Значение d, усеченное до ближайшего числа в формате,
                  заданном "fmt" (например, год или месяц). По умолчанию DD.

Форматы, используемые в TRUNC и ROUND

Используемый формат         Значение
--------------------------- ----------------------------------------
CC or SCC                   Дата первого дня века
YYYY или SYYYY              Дата первого дня года (при округлении: до или
YYY или YY или Y              после 1-го июля)
Y,YYY или YEAR или SYEAR
Q                           Дата первого дня квартала (при округлении: до или
                              после 16-го числа второго месяца квартала)
MONTH или MON или MM или RM Дата первого дня месяца (при округлении: до или
                              после 16-го числа месяца)
WW or IW                    Дата первого дня недели, начинающейся не с
                              воскресения, а с дня недели определенного по
                              первому дню года (при округлении: до или после
                              4-го дня недели)
W                           Дата первого день недели, начинающейся не с
                              воскресения, а с дня недели определенного по
                              первому дню месяца (при округлении: до или после
                              4-го дня недели)
DDD or DD or J              Номер дня
DAY or DY or D              Дата первого дня недели (воскресения)
HH or HH12 or Hh34          Час
MI                          Минута

Функции преобразования

Функция               Возвращаемое значение
--------------------- --------------------------------------------------------
CHARTOROWID(char)     Идентификатор строки (тип данных ROWID) из строки "char".
CONVERT(char,set1     Преобразованное "char" (по набору символов "set1"). Нео-
  [,set2])            бязательный аргумент "set2" задает исходный набор символов.
HEXTORAW(char)        Строка "char", преобразованная из шестнадцатиричного
                      представления в двоичное - удобное для включения в RAW-
                      столбец (столбец с исходными данными).
RAWTOHEX(raw)         Строка шестнадцатиричных значений, получаемая из "raw"
                      (исходные данные).
ROWIDTOCHAR(rowid)    Символьная строка длиной 18 символов, полученная "rowid"
                      (идентификатор строки).
TO_CHAR(expr[,fmt     "expr" преобразуется из числового значения или даты в
  [,nls]])            символьную строку по формату, заданному в "fmt". Необя-
                      зательный аргумент "nls" позволяет задать используемый
                      в функции национальный язык. Если "fmt" опущено, то чис-
                      ловое "expr" преобразуется в строку такой длины, кото-
                      рая вмещает только значащие цифры; дата же преобразуется
                      по формату даты согласно умолчанию: 'DD-MON-YY'.
TO_DATE(char[,fmt     Преобразование даты в символьном виде в значение даты по
  [,nls]])            формату, заданному в "fmt". Необязательный аргумент
                      "nls" позволяет задать используемый в функции нацио-
                      нальный язык. Если "fmt" опущена,"char" должна иметь
                      формат даты по умолчанию: 'DD-MON-YY'.
TO_MULTI_BYTE(char)   Преобразование "char" с однобайтовыми символами в
                      многобайтовые символы.
TO_NUMBER(char[,fmt   Преобразование "char" в число по формату "fmt". Нео-
  [,nls]])            обязательный аргумент "nls" позволяет задать исполь-
                      зуемый в функции национальный символ валюты.
TO_SINGLE_BYTE(char)  Преобразование "char" с многобайтовыми символами в
                      однобайтовые символы.

Групповые функции

Групповые функции имеют значение только в запросах и подзапросах.
Использование DISTINCT позволяет учитывать только различающиеся значения
аргумента «expr». При указании ALL (или по умолчанию) учитываются все значения
«expr». Например, DISTINCT при нахождении среднего значения из 1,1,1, и 3
дает результат 2, тогда как ALL при этой же операции дает результат 1.5.

Функция             Возвращаемое значение
------------------- ----------------------------------------------------------
AVG([DISTINCT|      Среднее значение "expr", с игнорированием пустых
  ALL]expr)         (NULL) значений
COUNT({[DISTINCT|   Количество строк, в которых "expr" не является пустым
  ALL]expr|*})      (NULL) значением. Установка "*" позволяет подсчитать
                    все выбранные строки, включая строки с NULL значениями
MAX([DISTINCT|      Максимальное значение "expr"
  ALL]expr)
8.0pt'>MIN([DISTINCT|      Минимальное значение "expr"
  ALL]expr)
8.0pt'>STDDEV([DISTINCT|   Среднеквадратичное (стандартное) отклонение от "expr"
  ALL]expr)         с игнорированием пустых (NULL) значений
SUM([DISTINCT|      Cумма значений "expr"
  ALL]expr)
8.0pt'>VARIANCE([DISTINCT| Дисперсия "expr", с игнорированием пустых значений
  ALL]expr)   

Прочие функции

Функция         Возвращаемое значение
--------------- --------------------------------------------------------------
DUMP(expr[,k    Строка символов, содержащая код типа данных, длину в байтах
  [,m[,n]]] )   и внутреннее представление "expr". Необязательный аргумент
                k позволяет задать представление возвращаемого значения:
                8 - восьмеричное, 10 - десятичное, 16 - шестнадцатиричное,
                17 - одиночные символы. Необязательный аргумент m задает
                начальную позицию в "expr", а необязательный аргумент n
                - длину возвращаемого значения, начиная с m.
GREATEST(expr1, Наибольшее значение из перечня. Пеpед сpавнением все выра-
  expr2,...)    жения пpеобpазуются к типу пеpвого выpажения.
LEAST(expr1,    Наименьшее значение из перечня. Пеpед сpавнением все выра-
  expr2,...)     жения пpеобpазуются к типу пеpвого выpажения.
NVL(n,expr)     Если n равно NULL, возвpащает "expr", иначе возвращает n.
                n и "expr" могут быть любого типа. Тип возвpащаемой вели-
                чины такой же как для n.
UID             Целое число, уникальным образом идентифицирующее текущего
                пользователя.
USER            Имя текущего пользователя.
USERNV(char)    Информация о среде текущего сеанса. Если "char" равен:
                'ENTRYID'   - возвращается доступный идентификатор элемента,
                              за которым идет слежение;
                'LANGUAGE'  - возвращает используемый язык;
                'SESSIONID' - возвращается идентификатор сеанса пользователя;
                'TERMINAL'  - возвращается идентификатор терминала пользо-
                              вателя (в терминах операционной системы).
VSIZE(expr)     Число байтов во внутpеннем пpедставлении "expr".

Оставить комментарий