Общие функции A-C D-G H-L M-Q R-Z Тригонометрические функции
SQL-99. Скалярные функции abs ( numeric_expression ) Возвращает модуль "numeric_expression". Отрицательные значения возвращаются как положительные значения. Пример: abs ( 15 ) Результат: 15 Пример: abs ( -15 ) Результат: 15 bit_length bit_length ( string_expression ) Возвращает число бит в "string_expression". cast ( expression , datatype_specification ) Преобразует выражение "expression" в указанный тип данных. В некоторых типах данных учитываются значения длины и точности. Убедитесь, что целевое выражение имеет соответствующий тип и размер. В качестве значений "datatype_specification" можно использовать следующие типы: character, varchar, char, numeric, decimal, integer, bigint, smallint, real, float, date, time, timestamp, time with time zone, timestamp with time zone и interval. При приведении типа к типу interval необходимо указать один из следующих квалификаторов интервалов: year, month или year to month для интервального типа данных "год-месяц"; day, hour, minute, second, day to hour, day to minute, day to second, hour to minute, hour to second или minute to second для интервального типа "день-месяц". Примечания: При преобразовании значения типа timestamp в тип date часть значения типа timestamp, указывающая время, пропускается. При преобразовании значения типа timestamp в тип time часть значения типа timestamp, указывающая дату, пропускается. При преобразовании значения типа date в тип timestamp для временных составляющих значения типа timestamp задаются нулевые значения. При преобразовании значения типа time в тип timestamp для составляющей даты значения типа timestamp устанавливается текущая системная дата. Недопустимо преобразование одного интервального типа данных в другой (например, по причине того, что количество дней в месяце изменяется). Обратите внимание, что можно указать количество разрядов только для начального квалификатора, т.е. YEAR(4) TO MONTH, DAY(5). Если тип и размер целевого выражения будут несовместимы с типом и размером исходного выражения, будет выдано сообщение об ошибке. Пример: cast ( '123' , integer ) Результат: 123 Пример: cast ( 12345 , varchar ( 10 ) ) Результат: строка содержит значение "12345" char_length ( string_expression ) Возвращает количество логических символов в строке "string_expression". Число логических символов может отличаться от числа байт в некоторых восточно-азиатских языках. Пример: char_length ( 'Canada' ) Результат: 6 character_length ( string_expression ) Возвращает количество символов в строке "string_expression". Пример: character_length ( 'Canada' ) Результат: 6 current_date  current_date  Возвращает дату, представляющую текущую дату компьютера, на котором работает СУБД. Пример: current_date Result: 04.03.2003 current_time  current_time  Возвращает значение времени и часового пояса, представляющее текущее время компьютера, на котором работает СУБД, если база данных поддерживает эту функцию. В противном случае представляет текущее время компьютера, на котором работает программа IBM® Cognos® BI. Пример: current_time Результат: 16:33:11.354+05:00 current_timestamp  current_timestamp  Возвращает значение даты/времени и часового пояса, представляющее текущее время компьютера, на котором работает СУБД, если база данных поддерживает эту функцию. В противном случае представляет текущее время компьютера, на котором работает программа IBM® Cognos® BI. Пример: current_timestamp Результат: 03.03.2003 16:40:15.535+05:00 localtime  localtime  Возвращает значение времени, представляющее текущее время компьютера, на котором работает СУБД. Пример: localtime Результат: 16:33:11 localtimestamp  localtimestamp  Возвращает значение даты и времени, представляющее текущую временную отметку компьютера, на котором работает СУБД. Пример: localtimestamp Результат: 03.03.2003 16:40:15 extract ( datepart , datetime_expression ) Возвращает целое число, представляющее значение datepart (year, month, day, hour, minute, second, epoch) из "datetime_expression". Пример: extract ( year , 2003-03-03 16:40:15.535 ) Результат: 2003 Пример: extract ( hour , 2003-03-03 16:40:15.535 ) Результат: 16 Пример: extract ( epoch , 2014-11-23 ) Результат: 1416718800 lower ( string_expression ) Возвращает строку "string_expression", где все заглавные буквы преобразованы в строчные. Пример: lower ( 'ABCDEF' ) Результат: abcdef mod ( integer_expression1, integer_expression2 ) Возвращает остаток (модуль) от деления "integer_expression1" на "integer_expression2". Значение "integer_expression2" не должно быть равно нулю или являться исключением. Пример: mod ( 20 , 3 ) Результат: 2 occurrences_regex ( regex_expression , string_expression [ , integer_expression [ , flags_expression ]] ) Возвращает целочисленное значение, представляющее число вхождений регулярного выражения "regex_expression" в "string_expression". Поиск начнется с позиции "integer_expression", для которой значением по умолчанию является 1. Флаги, позволяющие задать опции для интерпретации регулярного выражения, заданы элементом "flags_expression". Отдельные буквы используются, чтобы задать флаги; допустимые значения: 's', 'm', 'i' и 'x'. Пример: occurrences_regex ( '.er' , 'Flicker Lantern') Результат: 2 octet_length ( string_expression ) Возвращает количеств байт в строке "string_expression". Пример: octet_length ( 'ABCDEF' ) Результат: 6 Пример: octet_length ( '' ) Результат: 0 position ( string_expression1 , string_expression2 ) Возвращает целочисленное значение начального положения строки "string_expression1" в строке "string_expression2" или нуль, если строка "string_expression1" не была найдена. Пример: position ( 'C' , 'ABCDEF' ) Результат: 3 Пример: position ( 'H' , 'ABCDEF' ) Результат: 0 position_regex ([ start|after ]  regex_expression , string_expression [ , integer_expression1 [ , integer_expression2 [ , flags_expression ]]] ) Возвращает целочисленное значение, обозначающее начальное или конечное положение подстроки в "string_expression", которая соответствует регулярному выражению "regex_expression". Поиск начнется с позиции "integer_expression1", для которой значением по умолчанию является 1. Вхождение шаблона для поиска задано выражением "integer_expression2", для которого значением по умолчанию является 1. Опция возврата, заданная первым аргументом, указывает, что следует возвратить в отношении вхождения. Если вы зададите "start", будет возвращено положение первого символа. Если вы зададите "after", будет возвращено положение символа после вхождения. Если вы не зададите опцию возврата, будет неявным образом использоваться значение "start". Флаги, позволяющие задать опции для интерпретации регулярного выражения, заданы элементом "flags_expression". Отдельные буквы используются, чтобы задать флаги; допустимые значения: 's', 'm', 'i' и 'x'. Пример: position_regex ( '.er' , 'Flicker Lantern') Результат: 5 Пример: position_regex ( after '.er' , 'Flicker Lantern' ) Результат: 8 Пример: position_regex ( '.er' , 'Flicker Lantern' , 1 , 2 ) Результат: 12 trim ( [ [ trailing|leading|both ] [ match_character_expression ] , ] string_expression ) Возвращает строку "string_expression" с урезанными начальными и конечными пробелами или урезанным символом, указанным в аргументе "match_character_expression". Аргумент "both" используется, если не указан первый аргумент, а пробел используется, если не указан второй аргумент. Пример: trim ( trailing 'A' , 'ABCDEFA' ) Результат: ABCDEF Пример: trim ( both , ' ABCDEF ' ) Результат: ABCDEF upper ( string_expression ) Возвращает строку "string_expression", где все строчные буквы преобразованы в заглавные. Пример: upper ( 'abcdef' ) Результат: ABCDEF user user Возвращает ID авторизации диспетчеру базы данных во время работы nullif nullif ( expression1, expression2 ) Возвращает значение NULL, если выражения "expression1" и "expression2" равны; в противном случае возвращает выражение "expression1". coalesce ( expression_list ) Возвращает значение первого ненулевого аргумента (или ноль, если все аргументы нулевые). Требует нескольких аргументов в списке "expression_list". coalesce ( [Цена за единицу], [Отпускная цена за единицу] ) Результат: Возвращает цену за единицу или отпускную цену за единицу, если цена за единицу равна 0. coalesce ( expression_list ) Возвращает значение первого ненулевого аргумента (или ноль, если все аргументы нулевые). Требует один или нескольких аргументов в списке "expression_list". coalesce ( [Цена за единицу], [Отпускная цена за единицу] ) Результат: Возвращает цену за единицу или отпускную цену за единицу, если цена за единицу равна 0. ceil ( numeric_expression ) Возвращает наименьшее целое число, большее или равное "numeric_expression". ceiling ( numeric_expression ) Возвращает наименьшее целое число, большее или равное "numeric_expression". Пример: ceiling ( 4.22 ) Результат: 5 Пример: ceiling ( -1.23 ) Результат: -1 ln ( numeric_expression ) Возвращает натуральный логарифм значения "numeric_expression". Пример: ln ( 4 ) Результат: 1.38629 exp ( numeric_expression ) Возвращает экспоненту 'e', возведенную в степень "numeric_expression". Экспонента 'e' - это основание натурального логарифма. Пример: exp ( 2 ) Результат: 7,389056 period ( datetime_expression1 , datetime_expression2 ) Строит значение периода с использованием начальной точки "datetime_expression1" и конечной точки "datetime_expression2". Типы данных начальной и конечной точек должны быть идентичными, и они могут относиться в одной дате, одному времени или одной отметке даты и времени. Значения периодов можно использовать в предикатах периодов. Пример: period ( 2003-03-03 ; 2003-10-03 ) Пример: period ( 12:00:00 , 23:59:59 ) Пример: period ( 2003-03-03 12:00:00 , 2003-10-03 23:59:59 ) Пример: period ( [EMP].[BUS_START] , [EMP].[BUS_END] ) power ( numeric_expression1 , numeric_expression2 ) Возвращает выражение "numeric_expression1", возведенное в степень "numeric_expression2". Если "numeric_expression1" является отрицательным значением, то результатом возведения в степень "numeric_expression2" должно быть целочисленное значение. Пример: power ( 3 , 2 ) Результат: 9 random ( [ integer_expression ] ) Возвращает случайное значение с плавающей запятой в диапазоне от 0 до 1 с использованием в качестве начального значения необязательного целого числа "integer_expression". _round ( numeric_expression , integer_expression ) Возвращает выражение "numeric_expression" с округлением до "integer_expresssion" позиций после десятичного разделителя. Примечание: Атрибут "integer_expression" должен быть положительным целым числом. Округление выполняется перед применением форматирования данных. Пример: _round ( 1220.42369, 2 ) Результат: 1220.42 Конструктор строки представляет собой собрание значений, организованных в виде строки данных. Его можно использовать в условных выражениях (то есть, IF-THEN-ELSE) и выражениях фильтра (то есть, в условии IN). row ( expression_list ) Пример: if ( row([RetailerName],[OrderMethodCode]) = row('ActiForme',4) ) then ('A') else ('B') Результат: Возвращает 'A', если имя розничного продавца - это 'ActiForme' а код метода заказа - 4. В противном случае будет возвращено значение 'B'. Пример: case row([RetailerName],[OrderMethodCode]) when row('Advanced Climbing Ltd',3) then 1 when row('ActiForme',5) then 2 else 3 end Результат: Возвращает 1, если имя розничного продавца - это 'Advanced Climbing Ltd', а код метода заказа - 3. Возвращает 2, если имя розничного продавца - 'ActiForme', а код метода заказа - 5. В противном случае будет возвращено значение 3. Пример: row ( [OrderMethodCode], [Year] ) in ( [Query].[OMC], [Query].[YR] ) Результат: К возвращенным данным применяется фильтр на основе двух следующих условий: 1) [OrderMethodCode] в ([Query].[OMC]) 2) [Year] в ([Query].[YR]) sqrt ( numeric_expression ) Возвращает квадратный корень аргумента "numeric_expression". Значение "numeric_expression" должно быть неотрицательным. Пример: sqrt ( 9 ) Результат: 3 substring ( string_expression , integer_expression1 [ , integer_expression2 ] ) Возвращает подстроку строки "string_expression", начиная с позиции "integer_expression1", длиной "integer_expression1" символов, или до конца строки "string_expression2", если аргумент "integer_expression2" опущен. Первый символ строки "string_expression" находится в позиции 1. Пример: substring ( 'abcdefg' , 3 , 2 ) Результат: cd substring_regex ( regex_expression , string_expression [ , integer_expression1 [ , integer_expression2 [ , flags_expression ]]] ) Возвращает подстроку строки "string_expression", соответствующую регулярному выражению "regex_expression". Поиск начнется с позиции "integer_expression1", для которой значением по умолчанию является 1. Вхождение шаблона для поиска задано выражением "integer_expression2", для которого значением по умолчанию является 1. Флаги, позволяющие задать опции для интерпретации регулярного выражения, заданы элементом "flags_expression". Отдельные буквы используются, чтобы задать флаги; допустимые значения: 's', 'm', 'i' и 'x'. Пример: substring_regex ( '.er' , 'Flicker Lantern') Результат: ker Пример: substring_regex ( '.er' , 'Flicker Lantern' , 1 , 2 ) Результат: ter floor ( numeric_expression ) Возвращает наибольшее целое число, большее или равное "numeric_expression". Пример: floor ( 3.22 ) Результат: 3 Пример: floor ( -1.23 ) Результат: -2 width-bucket ( numeric_expression ,  min_value ,  max_value ,  num_of_buckets ) Для данного выражения эта функция возвращает номер блока, в который попадает значение данного выражения после оценки. Пример: width-bucket ( Количество ,  100 ,  5000 ,  10 ) Результат: Для каждой строки возвращает номер блока (от 0 до 11) для текущего значения Количество. Quantity width-bucket (Quantity) ------------ ------------------------------------- 50 0 450 1 1400 3 3600 8 4900 10 5000 11 sin ( numeric_expression ) Эта тригонометрическая функция возвращает синус аргумента, где аргументом является угол в радианах. Пример: sin ( 0.1667 * 3.1415 ) Результат: 0.5 cos ( numeric_expression ) Эта тригонометрическая функция возвращает косинус аргумента, где аргументом является угол в радианах. Пример: cos ( 0.3333 * 3.1415 ) Результат: 0.5 tan ( numeric_expression ) Эта тригонометрическая функция возвращает тангенс аргумента, где аргументом является угол в радианах. Пример: tan ( 0.25 * 3.1415 ) Результат: 1 arccos ( numeric_expression ) Эта обратная тригонометрическая функция возвращает арккосинус аргумента, где аргумент находится в диапазоне от -1 до 1, а результатом является значение в радианах. Пример: arccos ( -1 ) Результат: 3.1415 arcsin ( numeric_expression ) Эта обратная тригонометрическая функция возвращает арксинус аргумента, где аргумент находится в диапазоне от -1 до 1, а результатом является значение в радианах. Пример: arcsin ( 0 ) Результат: 3.1415 Эта обратная тригонометрическая функция возвращает арктангенс аргумента, где аргумент находится в диапазоне от -1 до 1, а результатом является значение в радианах. arctan ( numeric_expression ) Пример: arctan ( 0 ) Результат: 3.1415 coshyp ( numeric_expression ) Эта тригонометрическая функция возвращает гиперболический косинус аргумента, где аргументом является угол в радианах. Пример: coshyp ( 0 ) Результат: 1 sinhyp ( numeric_expression ) Эта тригонометрическая функция возвращает гиперболический синус аргумента, где аргументом является угол в радианах. Пример: sinhyp ( 0 ) Результат: 0 tanhyp ( numeric_expression ) Эта тригонометрическая функция возвращает гиперболический тангенс аргумента, где аргументом является угол в радианах. Пример: tanhyp ( 0 ) Результат: 0
Расширения SQL-99 OLAP cube cube ( grouping_column_reference_list ) Это оператор 'group by', результатом выполнения которого является список параметров группы, содержащий параметры группы для всех возможных комбинаций столбцов группы в аргументе "grouping_column_reference_list". rollup rollup ( grouping_column_reference_list ) Это оператор 'group by', результатом выполнения которого является список параметров группы, содержащий параметр группы для каждого подходящего подсписка аргумента "grouping_column_reference_list". Данный результат достигается за счет отбрасывания по одному элементу справа. grouping sets grouping sets ( grouping_set_list ) Это оператор 'group by' , указывающий несколько параметров для группировки. rank rank () Рассчитывает ранг строки в пределах окна, где ранг строки x задан как 1 плюс количество строк, предшествующих ей, но не являющихся одноранговыми. dense_rank dense_rank () Рассчитывает ранг плотности строки в пределах окна, где ранг плотности строки x задан как количество уникальных строк, предшествующих ей, и включающее ее. percent_rank percent_rank () Рассчитывает процентный ранг строки в пределах окна, где процентный ранг строки x определяется по формуле (xy - 1) / (ab - 1), где xy – это ранг строки x, а ab – количество строк в окне. row_number row_number () Рассчитывает порядковый номер строки в окне, начиная с 1 для первой строки. ntile ntile ( numeric_expression ) Разделяет упорядоченный набор данных на несколько сегментов, количество которых задается аргументом "numeric_expression", и назначает номер соответствующего сегмента каждой строке.