Функции Transact-SQL
Базовые (агрегатные) функции позволяют производить вычисления на основе данных, хранящихся в некотором столбце таблицы. Параметром агрегатной функции может быть имя столбца таблицы или звездочка (*).
Таблица 4.5 - Агрегатные функции
| Функция | Действие |
| AVG | Возвращает среднее арифметическое значение указанного столбца таблицы |
| COUNT | Возвращает число строк таблицы, в которых значение заданного столбца не равно значению NULL. Если параметром функции является звездочка, то подсчет ведется по всем строкам таблицы. |
| MAX | Возвращает максимальное значение в столбце |
| MIN | Возвращает минимальное значение в столбце |
| SUM | Возвращает сумму значений заданного столбца |
Следует отметить, что все эти функции обрабатывают только те строки, которые удовлетворяют заданному критерию отбора.
Строковые функции обычно используются с данными типа char, varchar, binary и text.
Таблица 4.6 - Строковые функции
| Функция | Результат |
| ASCII(строка) | Возвращает ASCII-код первого символа строки. |
| CHAR(целое число) | Преобразует целое число в символ. |
| CHARINDEX(символьное выражение, строка) | Возвращает номер позиции, с которой начинается символьное выражение в строке. Если заданное символьное выражение в строке отсутствует, то возвращается 0. |
| DIFFERENCE(строка, строка) | Выясняет степень схожести строк, возвращая значение от 0 до 4. Число 4 означает полное совпадение строк. |
| LOWER(строка) | Переводит символы строки в нижний регистр. |
| LTRIM(строка) | Удаляет пробелы в начале строки. |
| RATINDEX(шаблон, строка) | Возвращает номер позиции первого вхождения шаблона в строку. Шаблон должен быть заключен в знаки % и в нем допустимы другие символы маски. |
| REPLICATE(строка, целое число) | Повторяет строку указанное число раз. |
| REVERSE(строка) | Возвращает строку «задом наперед». |
| RIGHT(строка, целое число) | Возвращает часть строки, начиная с указанной позиции. |
| RTRIM(строка) | Удаляет пробелы в конце строки. |
| SOUNDEX(строка, строка) | Возвращает код из четырех цифр, который в дальнейшем используется при сравнении двух строк с помощью функции DIFFERENCE. |
| SPACE(целое число) | Возвращает строку из указанного числа пробелов. Если указано отрицательное число, то возвращается пустая строка. |
| STR(число, число символов, количество десятичных знаков) | Преобразует число в строку символов. |
| STUFF(строка_1, начальная позиция, длина, строка_2) | Удаляет из первой строки подстроку, которая определяется начальной позицией и длиной, и вставляет на это место вторую строку. |
| SUBSTRING(строка, начальная позиция, длина) | Возвращает часть строки, указанной длины, от начальной позиции. |
| UPPER(строка) | Переводит символы из нижнего регистра в верхний. |
Математические функции работают с числовыми типами данных. Значения, возвращаемые этими функциями, имеют шесть десятичных разрядов.
Таблица 4.7 - Математические функции
| Функция | Типы аргументов | Результат |
| ABS | Число | Абсолютное значение. |
| ACOS, ASIN, ATAN | Число с плавающей запятой | Обратные косинус, синус и тангенс. Возвращает угол в радианах. |
| ATAN2 | Число_1, число_2 | Возвращает угол в радианах, обратный тангенс которого равен частному от деления числа_1 на число_2. |
| COS, SIN, COT, TAN | Число с плавающей запятой, задающее угол в радианах | Косинус, синус, котангенс и тангенс угла. |
| CEILING | Число | Наименьшее целое, которое больше или равно указанному аргументу. |
| DEGREES | Число | Преобразует угол из радиан в градусы. |
| EXP | Число с плавающей запятой | Экспонента от аргумента. |
| FLOOR | Число | Наибольшее целое, которое меньше или равно указанному аргументу. |
| LOG | Число с плавающей запятой | Натуральный логарифм аргумента. |
| LOG10 | Число с плавающей запятой | Десятичный логарифм аргумента. |
| PI | - | Возвращает константу 3.141592653 (число p) |
| POWER | Число, y (число) | Возвращает аргумент в степени y. |
| RADIANS | Число | Преобразует угол из градусов в радианы. |
| RAND | Целое число. Аргумент необязателен. | Возвращает случайное число с плавающей запятой в диапазоне от 0 до 1. Аргумент может использоваться в качестве начального значения. |
| ROUND | Число, количество цифр | Число округляется до указанного количества цифр после запятой. |
| SIGN | Число | Возвращает знак числа. |
| SQRT | Число с плавающей запятой | Квадратный корень от числа. |
Следует отметить, что в качестве аргумента функций, приведенных в таблице 4.7, можно использовать все допустимые выражения, результатом вычисления которых будет число указанного выше типа.
Функции для работы с датами. Ниже приведены функции для работы со столбцами типа datetime.
Таблица 4.8 - Функции для работы с датами
| Функция | Тип аргумента | Результат |
| YEAR | Дата | Возвращает год в виде целого числа |
| MONTH | Дата | Возвращает номер месяца |
| DAY | Дата | Возвращает номер дня |
| GETDATE | Возвращает текущее время и дату. |