Функции языка запроса

Раздел содержит все функции, доступные на языке запроса AggreGate.

Встроенные числовые функции

Функция

Описание

ABS(Number d)

Возвращает абсолютное значение d

ACOS(Number d)

Возвращает арккосинус угла

ASIN(Number d)

Возвращает арксинус угла

ATAN(Number d)

Возвращает арктангенс угла

ATAN2(Number a,Number b)

Возвращает тангенс a/b

BITAND(Number a, Numberb)

Возвращает a & b

BITNOT(Number a)

Возвращает !a.

BITOR(Number a, Number b)

Возвращает a | b

BITXOR(Number a, Number b)

Возвращает a ^ b.

CEILING(Number d)

Возвращает наименьшее целое число не менее d

COS(Number d)

Возвращает косинус угла

COT(Number d)

Возвращает котангенс угла

DEGREES(Number d)

Конвертирует радианы в градусы

EXP(Number d)

Возвращает e (2.718...), в степени d

FLOOR(Number d)

Возвращает наибольшее целое число не более d

LOG(Number d)

Возвращает натуральный логарифм по основанию е

LOG10(Number d)

Возвращает натуральный десятичный логарифм

MOD(Number a, Number b)

Возвращает a по модулю b

PI()

Возвращает число Пи (3.1415...)

POWER(Number a, Number b)

Возвращает a, в степени b

RADIANS(Number d)

Конвертирует градусы в радианы

RAND()

Возвращает случайное число x от 0.0 до 1.0

ROUND(Number a, Number b)

Округляет a до b знаков после запятой

ROUNDMAGIC(Number d)

Решает проблемы округления, такие как 3.11-3.1-0.01

SIGN(Number d)

Возвращает -1, если d менее 0, 0, если d==0 и 1, если d более 0

SIN(Number d)

Возвращает синус угла

SQRT(Number d)

Возвращает квадратный корень

TAN(A)

Возвращает тангенс угла

TRUNCATE(a,b)

Сокращает a до b знаков после запятой

Строковые встроенные функции

Функция

Описание

ASCII(String s)

Возвращает ASCII код самого левого символа s

BIT_LENGTH(String str)

Возвращает длину строки в битах

CHAR(Integer c)

Возвращает символ, который содержит ASCII код c

CONCAT(String s1, String s2)

Возвращает s1 + s2.

DIFFERENCE(String s1, String s2)

Возвращает разницу между s1 и s2

HEXTORAW(String s)

Возвращает переведенную строку

INSERT(String s, Integer start, Integer length, String replacement)

Возвращает строку, где length числа символов, начинающихся со start, была заменена на replacement

LENGTH(String s)

Возвращает количество символов в строке s

LOCATE(String search, String s[, Integer start])

Возвращает первый индекс (1=левый, 0=не найден), где search найден в строке s, начинающейся со start.

LOWER(String s)

Конвертирует s в строчный регистр

LPAD(String s1, Integer length[, String s2])

Возвращает строку символов длиной length символов. Строка содержит символы s1, перенесенные пробелами налево. Если length меньше, чем длина аргумента s1, аргумент отсекается. Если определена опциональная строка s2, эта строка используется для заполнения поля вместо пробелов.

LTRIM(String s)

Убирает все пробелы в начале строки s

OCTET_LENGTH(String str)

Возвращает длину строки в битах (вдвое больше числа символов)

RAWTOHEX(String s1)

Возвращает переведенную строку

REGEXP_MATCHES(String s, String regex)

Возвращает true, если s соответствует regex как целое. Regex определяется в соответствии с регулярными правилами выражения.

REGEXP_SUBSTRING(String s, String regex)

Возвращает первую область в s, которая соответствует regex. Regex определяется в соответствии с регулярными правилами выражения.

REPEAT(String s, Integer count)

Возвращает s, повторяемое определенное количество раз

REPLACE(String s, String replace, String s2)

Заменяет все случаи replace в s на s2

REVERSE(String s)

Возвращает строку символов на основе s с символами в обратном порядке.

RPAD(String s1, Integer length[, String s2])

Возвращает строку символов длиной length символов. Строка содержит символы строки s1, перенесенные пробелами направо. Если length меньше, чем длина аргумента s1, аргумент отсекается. Если определена опциональная строка s2, эта строка используется для заполнения поля вместо пробелов.

RTRIM(String s)

Убирает все пробелы в конце s

SOUNDEX(String s)

Возвращает четырехсимвольный код, представляющий звук s

SPACE(Integer count)

Возвращает строку, состоящую из определенного количества пробелов

SUBSTRING(String s, Integer start[, String len])

Возвращает подстроку, начинающуюся с start (1=первый символ слева) длиной len

UPPER(String s)

Конвертирует s в верхний регистр

Встроенные функции даты/времени

Функция

Описание

CURDATE()

Возвращает текущую дату

CURTIME( [ <time precision> ] )

Возвращает текущее время как значение типа ВРЕМЯ И ВРЕМЕННАЯ ЗОНА.

LOCALTIME()

Возвращает текущее время как значение типа ВРЕМЯ.

CURRENT_TIMESTAMP [ ( <timestamp precision> ) ]

Возвращает текущую дату/время как значение типа ВРЕМЕННАЯ МЕТКА И ВРЕМЕННАЯ ЗОНА.

LOCALTIMESTAMP [ ( <timestamp precision> ) ]

Возвращает текущую дату/время как значение типа ВРЕМЕННАЯ МЕТКА.

DATEADD(String string, Integer number, Date datetime)

Строка указывает единицу времени и может принимать следующие значения 'ms'='millisecond', 'ss'='second','mi'='minute','hh'='hour', 'dd'='day', 'mm'='month', 'yy' = 'year'. Можно использовать как длинную, так и короткую форму обозначения временного интервала.

DATEDIFF(String string, Date datetime1, Date datetime2)

Возвращает количество единиц времени, прошедших с datetime1 до datetime2. Строка указывает единицу времени и может иметь следующие значения 'ms'='millisecond', 'ss'='second','mi'='minute','hh'='hour', 'dd'='day', 'mm'='month', 'yy' = 'year'. Можно использовать как длинную, так и короткую форму строки.

DAYNAME(Date date)

Возвращает название дня

DAYOFMONTH(Date date)

Возвращает день месяца (1-31)

DAYOFWEEK(Date date)

Возвращает день недели (1 означает воскресенье)

DAYOFYEAR(Date date)

Возвращает день года (1-366)

HOUR(Date time)

Возвращает час (0-23)

MINUTE(Date time)

Возвращает минуту (0-59)

MONTH(Date date)

Возвращает месяц (1-12)

MONTHNAME(Date date)

Возвращает название месяца

NOW()

Эквивалент LOCALTIMESTAMP().

QUARTER(Date date)

Возвращает квартал (1-4)

SECOND(Date time)

Возвращает секунду (0-59)

SECONDS_SINCE_MIDNIGHT(Date time)

Возвращает целое число в пределах 0 - 86399, определяющее количество секунд, истекших после полуночи.

TIMESTAMP(Object value)

Эта функция переводит аргумент во ВРЕМЕННУЮ МЕТКУ БЕЗ ВРЕМЕННОЙ ЗОНЫ. Когда единственный аргумент представляет собой числовое значение, он интерпретируется как временная метка Unix в секундах. Когда аргумент представляет собой строку, его значение переводится во временную метку.

TIMESTAMP_WITH_ZONE(Object value)

This function translates the arguments into a TIMESTAMP value. When the single argument is a numeric value, it is interpreted as a Unix timestamp in seconds. When the argument is a string, it's parsed to a timestamp.

TO_CHAR(Date date, String format)

Форматирует date в строку format, представленную во втором аргументе. Строка формата описана здесь.

TO_TIMESTAMP(String value, String format)

Преобразует datetime во временную метку, используя формат. Строка формата описана здесь.

UNIX_MILLIS(Date date)

Возвращает количество миллисекунд, начиная с 1970-01-01 (the Epoc).

UNIX_TIMESTAMP(Date date)

Возвращает количество секунд, начиная с 1970-01-01 (the Epoc).

WEEK(Date date)

Возвращает неделю года (1-53)

YEAR(Date date)

Возвращает год

Компоненты поддерживаемого формата для функций TO_CHAR и TO_TIMESTAMP в верхнем регистре:

BC | B.C. | AD | A.D.

Возвращает AD для нашей эры и BC для до нашей эры.

RRRR

Год в четырехзначном формате.

YYYY

Год в четырехзначном формате.

IYYY

Год в четырехзначном формате, сответствует неделе ISO в году. Отчетный год за последние несколько дней  календарного года может быть следующим годом.

YY

Год в двузначном формате.

IY

Год в двузначном формате,  сответствует неделе ISO в году.

MM

Месяц (01-12).

MON

Краткое название месяца из трех букв.

MONTH

Название месяца.

WW

Неделя года (1-53), где неделя 1 начинается в первый день года и продолжается до седьмого дня года (не календарная неделя).

W

Неделя месяца (1-5), где неделя 1 начинается в первый день месяца  и заканчивается на седьмой (не календарная неделя).

IW

Неделя года (1-52 или 1-53) на основе стандарта ISO. Неделя начинается с понедельника. Первая неделя может начинаться под конец предыдущего года.

DAY

Название дня.

DD

День месяца (01-31).

DDD

День года (1-366).

DY

Краткое название дня из трех букв.

HH

Час суток (00-11).

HH12

Час суток (00-11).

HH24

Час суток (00-23).

MI

Минута (00-59).

SS

Секунда (00-59).

FF

Дробные секунды.

Встроенные функции выражения

Функция

Описание

EVALUATE_TO_STRING(String expression, String defaultContext, String defaultTable [, String agrument0, String argument1, ...])

Вычисляет выражение AggreGate (указанное параметром выражение). Контекст по умолчанию для вычисления задан параметром defaultContext. Таблица по умолчанию задана параметром defaultTable. Любая ссылка на поле, указывающая на поле Таблицы данных, может быть использована как defaultTable, так как в языке запросов поля Таблицы данных переменных/функций контекста представлены полями строк.

Аргументы (argument0, argument1, ...) доступны через переменные среды, названные 0, 1, и так далее. Например, для доступа к argument3 выражения используйте следующую ссылку: {env/3}.

Эта функция преобразует результат выражения AggreGate в строку и возвращает эту строку.

EVALUATE_TO_INT(String expression, String defaultContext, String defaultTable [, String agrument0, String argument1, ...])

Действует как EVALUATE_TO_STRING, но преобразует результат выражения AggreGate в целое число.

EVALUATE_TO_LONG(String expression, String defaultContext, String defaultTable [, String agrument0, String argument1, ...])

Действует как EVALUATE_TO_STRING, но преобразует результат выражения AggreGate длинное число (целое число большого диапазона).

EVALUATE_TO_DOUBLE(String expression, String defaultContext, String defaultTable [, String agrument0, String argument1, ...])

Действует как EVALUATE_TO_STRING, но преобразует результат выражения AggreGate в цисло с плавающей запятой.

EVALUATE_TO_BOOLEAN(String expression, String defaultContext, String defaultTable [, String agrument0, String argument1, ...])

Действует как EVALUATE_TO_STRING, но преобразует  результат выражения AggreGateв логическое.

EVALUATE_TO_DATE(String expression, String defaultContext, String defaultTable [, String agrument0, String argument1, ...])

Действует как EVALUATE_TO_STRING, но преобразует  результат выражения AggreGate в дату.

Встроенные системные функции

Функция

Описание

CONVERT(Object exp, String type)

Конвертирует exp в другой тип данных. Поддерживаемые типы данных:

  • целочисленные:SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, SQL_BIGINT, SQL_NUMERIC, SQL_DECIMAL, SQL_BOOLEAN
  • с плавающей точкой: SQL_REAL, SQL_FLOAT, SQL_DOUBLE
  • строковые: SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR
  • даты/времени: SQL_DATE, SQL_TIME, SQL_TIMESTAMP

Пример: CONVERT(10, SQL_STRING)

CASEWHEN(Object exp, Object v1, Object v2)

Если выражение exp является true, возвращается v1, в противном случае - v2. Функция поддерживает поля, которые могут иметь знаечние null.

COALESCE(Object expr1, Object expr2,Object expr3,...)

Если выражение exp 1 имеет непустое значение (т.е. не null), оно возвращается, или же вычисляется exp 2, и если оно не имеет пустое значение, оно также возвращается и т.д.

NULLIF(Object v1, Object v2)

Если v1 равно v2, возвращается пустое значение, в противном случае - v1