Функции для выражений
Обновлен: Ноябрь 2007
Функции представляют собой доступные для использования хранимые операции. В системах управления базами данных доступны основные функции. В дополнение к ним можно создавать собственные пользовательские функции.
При построении выражения можно вызвать ряд функций, в том числе следующие:
Строковые (символьные) функции.
Функции даты.
Математические функции
Системные функции
Другие функции, например функции преобразования данных из одного типа в другой.
Пользовательские функции
В целом при наличии представления о доступных в конкретной базе данных функциях можно использовать имена этих функций и синтаксис, поддерживаемый этой базой данных. В некоторых случаях, например при создании представлений, хранимых процедур или триггеров необходимо использовать имена функций и синтаксис, которые установлены для конкретной базы данных.
Конструктор запросов и представлений делает работу с функциями проще благодаря следующим возможностям:
Правильная вставка кавычек в аргументы функций.
Проверка типа данных для аргументов.
Проверка типа данных для возвращаемых значений.
Сведения о функциях, поддерживаемых в базе данных, см. в документации по этой базе данных
Примечание. |
---|
При создании запросов, которые выдают сводные результаты, можно использовать специальный набор функций и статистические функции (такие как SUM( ) и AVG( )). Дополнительные сведения см. в разделе Сводка по результатам запроса. |
Строковые функции
Приведенные ниже функции, предназначенные для работы с символьными строками, являются типичными для многих баз данных.
Функция |
Описание |
Пример |
---|---|---|
LCASE( )*, LOWER( ) |
Преобразует строки в нижний регистр. |
Чтобы сделать первый знак прописным, используйте следующую строку:
Чтобы преобразовать остальные знаки в нижний регистр, используйте следующую строку:
Выводит последнее имя после преобразования первого знака в верхний регистр, а остальных — в нижний. |
LTRIM( ) |
Удаляет из строки начальные пробел. |
Выводит столбец адреса после удаления из шрифта лишних пробелов. |
SUBSTRING( ) |
Извлекает из строки один или несколько знаков. |
Выводит первые три знака (код области) телефонного номера. |
UCASE( )*, UPPER( ) |
Преобразует строки в верхний регистр. |
Преобразует содержимое столбца lname в верхний регистр с последующим их сравнением с конкретным значением с целью избежать несовпадений при поиске с учетом регистра. |
* При вызове в качестве ODBC-функции нужно использовать следующий синтаксис: { fn LCASE(text) }.
Функции даты
Приведенные ниже функции (или иные, схожие с ними) доступны во многих базах данных.
Функция |
Описание |
Пример |
---|---|---|
DATEDIFF( ) |
Вычисляет интервал между двумя датами. |
Выявляет всех сотрудников, принятых на работу более пяти лет назад. |
DATEPART( ) |
Возвращает указанную часть столбца даты или даты и времени, включая день, месяц или год. |
Выводит только год (не полную дату) приема сотрудника на работу. |
CURDATE( )*, GETDATE( ) or DATE( ) |
Возвращает текущую дату в формате даты и времени. Эта функция полезна как входная для многих других функций даты, например при вычислении прямого или обратного интервала времени, считая с текущей даты. |
|
Математические функции
В большинстве баз данных доступны математические функции, которые можно использовать для выполнения вычислений. Приведенные ниже функции являются типичными для многих баз данных.
Примечание. |
---|
Для вычисления средних и итоговых показателей в отчетах можно использовать статистические функции AVG( ), COUNT( ), MAX( ), MIN( ) и SUM(). |
Функция |
Описание |
Пример |
---|---|---|
ROUND( ) |
Округляет число до указанного числа знаков после запятой. |
Выводит общую цену с учетом скидки, а затем округляет результаты до двух знаков после запятой. |
FLOOR( ) |
Округляет указанное число до следующего меньшего целого числа. |
Округляет все цены в таблице titles до следующего меньшего целого числа. |
CEILING( ) |
Округляет указанное число до следующего большего целого числа. |
Копирует значения title и price (округленные до ближайшего меньшего целочисленного значения) из таблицы titles в таблицу archivetitle. |
Системные функции
В большинстве баз данных доступны специальные функции, при помощи которых можно возвращать данные о текущей базе данных, текущем пользователе или сервере. Приведенные ниже функции являются типичными для многих баз данных.
Функция |
Описание |
Пример |
---|---|---|
DATALENGTH( ) |
Возвращает число байт, использованных в указанном выражении. |
Выводит количество байт, требуемое для имени и фамилии. |
USER( )*, USER_NAME( ) |
Возвращает имя текущего пользователя. |
Создает список клиентов для продавца, выполнившего запрос. |
Прочие функции
В дополнение к перечисленным выше функциям в некоторых базах данных предоставлены другие функции, которые призваны помочь в создании запросов, например функции преобразования данных и другие служебные функции. Приведенные ниже функции являются примером служебных функций, которые доступны во многих базах данных.
Функция |
Описание |
Пример |
---|---|---|
CONVERT( ) |
Преобразует данные одного типа данных в другой. Полезна при форматировании данных или использовании содержимого столбца данных в качестве аргумента в функции, для которой требуются данные другого типа. |
Выводит дату с заголовком перед ней; функция CONVERT( ) преобразует дату в строку, что позволяет слить ее с текстовой строкой. |
SOUNDEX( ) |
Возвращает код Soundex для указанного выражения, который можно использовать для создания поиска типа "похожее звучание". |
Выполняет поиск имен, звучание которых напоминает "Майкл". |
STR( ) |
Преобразует числовые данные в символьную строку, что позволяет использовать при работе с ними текстовые операторы. |
Выводит столбец job_id в отдельной строке. |