Функции SQL Server - скалярные, агрегатные, функции наборов записей

MS SQL Server

Функции

Функции позволяют SQL Server выполнять вычисления с данными и генерировать результаты. Они похожи на функции любого другого языка программирования. Функции SQL Server делятся на три типа:

• Скалярные — обрабатывают одно значение (или ни одного) и возвращают один результат.
• Агрегатные — обрабатывают набор значений.
• Функции наборов записей — заменяют имена таблиц.

Каждый из трех типов более подробно рассматривается в следующих разделах.

Скалярные функции

Как упоминалось ранее, скалярные функции вызываются без параметров или с одним параметром и возвращают одно значение. Допускается вложенный вызов скалярных функций, то есть результат вызова одной функции является параметром другой. Скалярные функции делятся на семь основных типов.

Типы скалярных функций SQL Server
Тип Применение
Строковые функции Операции со строками.
Математические функции
Базовые математические операции.
Функции даты Операции с датами.
Системные функции Получение системной информации.
Функции защиты
Получение информации безопасности.
Функции метаданных
Проверка сведений об объектах баз данных.
Текстовые и графические функции
Чтение данных и модификация текстовых и графических столбцов.

ВАЖНО!

Если вы знакомы с предыдущими версиями SQL Server, учтите, что глобальные переменные теперь отнесены к разряду скалярных функций.

Допускается использование этих функций в большинстве секций команды SELECT. Однако в секции HAVING они могут использоваться лишь в том случае, если они также присутствуют в списке выборки. Наиболее распространенные скалярные функции перечислены ниже.

ВАЖНО!

На экзамене вам может встретиться любая из скалярных функций, перечисленных в прил. Б. В табл. 6.6 перечислены лишь важнейшие функции, необходимые для изложения материала.

Распространенные скалярные функции
Функция
Описание
@@CURSOR_ROWS Возвращает количество записей в последнем открытом курсоре.
@@ERROR
Возвращает код ошибки для последней команды TSQL.
@@FETCH_STATUS Возвращает состояние последней команды FETCH.
@@IDENTITY Возвращает последнее вставленное значение счетчика.
@@NESTLEVEL
Возвращает уровень вложенности хранимой процедуры.
@@ROWCOUNT Возвращает количество записей, участвовавших в выполнении последней команды SQL.
@@SERVERNAME Возвращает имя локального сервера.
@@SPID
Возвращает идентификатор процесса.
@@VERSION Возвращает дату и точную версию SQL Server, а также тип процессора.
ABS(числовое_выражение)
Возвращает модуль заданной величины.
ASCII(символьное_выражение) Возвращает ASCII-код первого символа в строковом выражении.
CASE
Рассматривает последовательность условий и возвращает результат.
CAST Преобразует тип данных.
CHAR Преобразует целое число в строку символовASCII.
CONVERT(тип_данных, выражение[,стиль]) Преобразует столбцы, переменные и константы из одного типа данных SQL Server в другой.
DATALENGTH(символьное_выражение) Возвращает длину символьной строки. Завершающие пробелы игнорируются.
DATEADD(компонент_даты, число, дата) Возвращает дату, полученную прибавлением заданного числа компонентов (недель, месяцев и т. д.) к заданной дате. Вычитание реализуется прибавлением отрицательной величины.
DATEDIFF(компонент_даты, дата1, дата2)
Возвращает разность дата2 - дата1, измеряемую в заданных компонентах.
DATENAME(компонент_даты, дата)
Возвращает заданный компонент даты в виде строки, по возможности преобразованный в имя (например, June).
DATEPART(компонент_даты, дата)
Возвращает заданный компонент даты в виде целого числа.
DB_NAME([идентификатор_базы]) Определяет имя базы данных.
GETDATE() Возвращает текущую системную дату и время.
ISDATE(выражение) Возвращает 1, если выражение соответствует допустимой дате, и 0 в противном случае.
ISNULL(выражение, константа) Заменяет значения NULL заданной константой.
ISNUMERIC(выражение) Возвращает 1, если выражение является допустимым числом, и 0 в противном случае.
LEFT(символьное_выражение, целое_выражение)
Возвращает целое число символов от начала строки.
LEN(символьное_выражение) Возвращает длину символьной строки. Завершающие пробелы игнорируются.
LOWER(символьное_выражение)
Преобразует символы выражения в нижний регистр.
LTRIM(символьное_выражение)
Удаляет начальные пробелы.
MONTH(дата)
Возвращает месяц в виде целого числа.
NULLIF(выражение1, выражение2) Возвращает NULL, если значения выражений совпадают.
RIGHT(символьное_выражение, целое_выражение) Возвращает целое число символов с конца строки.
RTRIM(символьное_выражение)
Удаляет завершающие пробелы.
STR(вещественное_выражение[,длина[,разрядность]]) Преобразует числовые данные в символьные.
STUFF(символьное_выражение1, начало, длина, символьное_выражение2)
Заменяет подстроку выражения1 с заданной начальной позицией и длиной выражением2.
SUBSTRING(выражение, начало, длина)
Возвращает часть строки.
SUSER_SID(['имя']) Возвращает идентификатор пользователя SQL Server.
SUSER_SNAME([sid]) Возвращает регистрационное имя пользователя SQL Server.
UPPER(символьное_выражение)
Преобразует символы выражения в верхний регистр.
USER_NAME([идентификатор_пользователя]) или SESSION_USER
Возвращает имя пользователя из базы данных.
YEAR('дата')
Возвращает год в виде целого числа из четырех цифр.

Многие скалярные функции просты и не требуют подробных разъяснений. CASE, функции даты и преобразования типов не только отличаются повышенной сложностью, но и чаще встречаются в вопросах экзамена.


 

Добавить комментарий


Защитный код
Обновить