Transact-SQL обладает весьма обширным набором функций…
Агрегатные функции:
AGV | Возвращает среднее арифметическое группы значний (столбца), при этом значение NULL пропускаются. |
CHECKSUM_AGG | Возвращает контрольную сумму значений в группе. Значения NULL пропускаются. Можно использовать с OVER. |
MAX | Возвращает максимальное значение в столбце.Можно использовать с OVER. |
MIN | Возвращает минимальное значение в столбце.Можно использовать с OVER. |
SUM | Сумма всех значений в столбце |
COUNT | Возвращает количество значений столбца. Тип значения INT.Можно использовать с OVER. |
COUNT_BIG | Возвращает количество значений столбца. Тип значения BIGINT. Можно использовать с OVER. |
GROUPING | Возвращает столбец, который содержит значение 1, если строка добавлена с помощью операторов ROLLUP, CUBE и GROUPING SETS, или значение 0 в ином случае. Используется вместе с GROUP BY и HAVING. |
GROUPING_ID | Возвращает уровень группирования. Используется вместе с GROUP BY и HAVING. Появилась с 2008 версии. |
STDEV | Возвращает статистическое стандартное отклонение всех значений в указанном выражении. Можно использовать с OVER. |
STDEVP | Возвращает статистическое стандартное отклонение совокупности всех значений в указанном выражении. Можно использовать с OVER. |
VAR | Возвращает статистическую дисперсию всех значений в указанном выражении. Можно использовать с OVER. |
VARP | Возвращает статистическую дисперсию для заполнения всех значений в указанном выражении. Можно использовать с OVER. |
Скалярные функции:
Числовые функции:
SIN (f) | Возвращает синус f. |
COS(f) | Возвращает косинус f. |
COT (f) | Возвращает котангес f. |
TAN(f) | Возвращает тангенс f. |
ACOS(f) | Возвращает арккосинус f. |
ASIN(f) | Возвращает арксинус f. |
ATAN(f) | Возвращает арктангес f. |
ATN2(f1, f2) | Возвращает арктангес f1/f2. |
RADIANS (n) | Возвращает радианы преобразованные из углового значения n. |
DEGREES (n) | Возвращает угловые значение преобразованное из радианы n. |
PI() | Возвращает значение числа pi. |
LOG (f) | Возвращает натуральный логарифим числа f |
LOG10(f) | Возвращает десятичный логарифм числа f. |
EXP(f) | Возвращает значение $$e^f$$. |
SQUARE(f) | Возвращает квадрат выражения f. |
POWER (f, y) | Возвращает значение $$f^y$$. |
SQRT(f) | Возвращает квадратный корень f. |
CEILING(n) | Возращает наименьшее целое число, большее или равное заданному параметру. |
FLOOR (n) | Возвращает наибольшее целое число, которое меньше или равно заданному значению n. |
ABS(n) | Возвращает модуль числа n. |
SIGN (n) | Возвращает знак значения n в ввиде числа -1,0 или 1 |
#171;ROUND (n, l, [f])#187; | Возвращает округлённое значение числа n с точностью l. Если параметр f равен 1, то значение усекается а не округляется. |
RAND | Возвращает случайное число в диапазоне от 0 до 1. |
ROWCOUNT_BIG | Возвращает количество строк, которые были обработаны в процессе выполнения последнего оператора Transact-SQL. |
Функции даты
SYSDATETIME() | Возвращает текущую системную дату и время. Тип datetime2(7). Появилась с 2008 версии. |
SYSDATETIMEOFFSET() | Возвращает текущую системную дату и время, включая смещение часовго пояса .Тип datetimeoffset(7). Появилась с 2008 версии. |
SYSUTCDATETIME() | Возвращает текущую системную дату и время в формате UTC. Появилась с 2008 версии. Тип datetime. |
CURRENT_TIMESTAMP | Возвращает текущую системную дату и время. Тип datetime. |
GETDATE() | Возвращает текущую системную дату и время. Тип datetime. |
GETUTCDATE() | Возвращает текущую системную дату и время в формате UTC. Тип datetime. |
DATEPART (datepart, date) | Возвращает целое число являющееся частью даты date, заданную параметром datepart. |
DATENAME(datepart, date) | Возвращает часть даты в виде строки символов. Дата указывается параметром date, а какю часть выводить задаётся параметром datepart. |
DAY(date) | Возвращает день указанной даты. |
MONTH(date) | Возвращает месяц указанной даты. |
YEAR(date) | Возвращает год указанной даты. |
DATEDIFF(datepart, date1, date2) | Возвращает целое число, являющуюся разностью между частями двух дат date1 и date2. В единицах заданных значением datepart. |
DATEADD(datepart, number, date) | Возвращает дату являющуюся сложением даты date и интервалом.Интервал задаётся в единицах datepart и числом этих единиц number . |
EOMONTH(date, add_month) | Возвращает последний день месяца, в текущем месяце указанной даты date. Можно выбрать другой месяц используя параметр add_month. |
SWITCHOFFSET(datetimeoffset, time_zone) | Возвращает дату/время datetimeoffset, в часовым поясе time_zone. Достпуно с 2008 версии. |
TODATETIMEOFFSET (datetime2, time_zone ) | Возвращает значение даты в типе datetimeoffset. Преобразованием происходит путём добавления к дате datetime2 часового пояса time_zone. |
ISDATE(expression) | Возвращает 1, если значение expression является значением datetime2. |
Строковые функции
ASCII(char) | Возвращает ASCII-код первого символа. |
CHAR(code) | Возвращает символ из ASCII-кода. |
UNICODE(char) | Возвращает целое значение, для первого символа. |
NCHAR(code) | Возвращает символ Unicode, заданный целочисленным кодом. |
QUOTENAME(string) | Возвращает преобразованную строку Unicode с разделителями, строка будет являтся допустим идентификатором с разделителями. |
SOUNDEX(string) | Возвращает четырёхсимвольный код SOUNDEX, используемый для определения похожести звучания двух строк. |
DIFFERENCE(string1, string2) | Возвращает разность между значениями SOUNDEX этих строк. |
CHARINDEX(sub_string, string) | Возвращает начальную позицию подстроки в строке, если вхождений нет возвращает 0. |
REPLACE(string, sub_string1, sub_string2) | Возвращает строку, где все подстроки sub_string1 в строке string заменены на подстроки sub_string2. |
SUBSTRING(string, pos, length) | Возвращает подстроку строки string, начиная с позиции pos, длиной length. |
LEFT(string, length) | Возвращает подстроку содержащую указанное число смволов с начала строки. |
RIGHT(string, length) | Возвращает подстроку содержащую указанное число символов с конца строки. |
LEN(string) | Возвращает кол-во символов в заданном строковом выражении, исключая конечные пробелы. |
LOWER(string) | Возращает строку, где все символы верхнего регистра данной строки преобразованны в нижний регистр. |
UPPER(string) | Возращает строку, где все символы нижнего регистра данной строки преобразованны в верхний регистр. |
LTRIM(string) | Возвращает данную строку, без пробелов в начале. |
RTRIM(string) | Возвращает данную строку, без пробелов в конце. |
SPACE(length) | Возвращает пробельную строку с длиной, заданной параметром lenght. |
REPLICATE(string, num) | Возвращает строку, где строка string повторяется num раз. |
PATINDEX(%p%, expr) | Возвращает начальную позицию первого вхождения шаблона p в заданном выражении expr или ноль, если шаблон в строке не найден. |
REVERSE(z) | Отображает строку z в реверсном, обратном порядке. |
STR(f[, len[, d]]) | Преобразует заданное выражение с плавающей точкой f в строку. Параметр len — длина строки, включая десятичную точку, знак числа, цифры и пробелы(По умолчанию 10), d — количество цифр справа от десятичной точки. |
STUFF (z1, a, length, z2) | Заменяет часть строки z1 на строку z2, начиная с позиции a, заменяя length символов строки z1 |
Функции преобразования
CAST(expression AS type [(length)]) | Преобразует выражение expression в заданный тип данных type (если это возможно). Параметр a может быть любым допустимым выражением. |
CONVERT(type[(length)],expression [, style]) | Эквивалетно CAST, но аргументы задаются иным образом. Функция CONVERT может быть использована с любым типом данных. |
PARSE ( string_value AS data_type [ USING culture ] ) | Возвращает значение string_value, приведённое к типу data_type. В случае ошибки выводит сообщение. Появилась с 2012 версии. |
TRY_CAST ( expression AS data_type [ ( length ) ] ) | Возвращает значение expression, приведённое к типу data_type. В случае не возможности это сделать возвращает NULL. Появилась с 2012 версии. |
TRY_CONVERT ( data_type [ ( length ) ], expression [, style ] ) | Возвращает значение expression, приведённое к типу data_type. В случае не возможности это сделать возвращает NULL. Появилась с 2012 версии. |
TRY_PARSE ( string_value AS data_type [ USING culture ] ) | Возвращает значение expression, приведённое к типу data_type. В случае не возможности это сделать возвращает NULL. Рекомендуется использовать TRY_PARSE только для преобразования из строкового типа, в тип даты и времени или в числовой тип. Появилась с 2012 версии. |
Системные функции
[ database_name. ] $PARTITION.partition_function_name(expression) | Возвращает номер секции для любого допустимого значения. |
@@IDENTITY | Возвращает значение последнего вставленого идентификатора. |
@@PACK_RECEIVED | Возвращает количество входных пакетов с последнего запуска. |
@@TRANCOUNT | Возвращает число инструкций BEGIN TRANSACTION, выполненных в текущем соединении. |
@@ROWCOUNT | Возвращает число строк затронутых при выполнении последней инструкции. Возвращаемый тип int. |
ROWCOUNT_BIG() | Возвращает число строк, затронутых при выполнении последней инструкции. Тип bigint. |
@@ERROR | Возвращает код ошибки последней выполненной инструкции. Если ошибок небыло выводит 0. |
ERROR_LINE() | Возвращает номер строки, в которой возникла ошибка. Которая возникла в конструкции TRY…CATCH. |
ERROR_MESSAGE() | Возвращает текст сообщения об ошибке, которая возникла в конструкции TRY…CATCH. |
ERROR_NUMBER() | Возвращает номер ошибки, которая возникла в конструкции TRY…CATCH. |
ERROR_PROCEDURE() | Возвращает имя хранимой процедуры или триггера, в которых произошла ошибка. Возникшая в конструкции TRY…CATCH. |
ERROR_SEVERITY() | Возвращает серьезность ошибки, которая возникла в конструкции TRY…CATCH. |
ERROR_STATE() | Возвращает номер состояния ошибки, которая возникла в конструкции TRY…CATCH. |
BINARY_CHECKSUM ( * | expression [ ,…n ] ) | Возвращает двоичное значение контрольной суммы, вычисленное для строки таблицы или для списка выражений. |
CHECKSUM ( * | expression [ ,…n ] ) | Возвращает значение контрольной суммы, вычисленное для строки таблицы или для списка выражений. |
FORMATMESSAGE ( msg_number, [ param_value [ ,…n ] ] ) | Возвращает сформированный текст полученный из сообщений имеющиеся в sys.messages. |
GET_FILESTREAM_TRANSACTION_CONTEXT () | Возвращает токен, который представляет текущий контекст транзакции сеанса. |
CONNECTIONPROPERTY ( property ) | Возвращает свойство property соединения, по которому получен запрос. |
CURRENT_REQUEST_ID() | Возвращает идентификатор текущего требования в пределах текущего сеанса. |
HOST_ID () | Возвращает идентификационный номер рабочей станции. |
HOST_NAME () | Возвращает имя рабочей станции. |
GETANSINULL ( [ 'database' ] ) | Возвращает 1, если использование значений NULL в базе данных dbname соответствует станадарту ANSI SQL. |
ISNULL ( check_expression, replacement_value ) | Возвращает значение выражения check_expression, если оно не является NULL. Иначе возвращает значение replacement_value. |
ISNUMERIC(expression) | Возвращает 1 если выражение expression является допуститмым числовым выражением, иначе 0. |
MIN_ACTIVE_ROWVERSION | Возвращает наименьшее активное значение rowversion в текущей базе данных. |
NEWID() | Возвращает уникальный номер ID, который состоит из 16-байтовой двоичной строки. Тип данных uniqueidentifier. |
NEWSEQUENTIALID() | Возвращает GUID, который больше любого сгенерированного ранее этой функцией на данном компьютере GUID.(Эта функция может быть использованна только в качестве значения по умолчанию для столбца.) |
XACT_STATE() | Возвращает 1 если текущий запрос содержит активную пользовательскую транзакцию. 0 — у текущего запроса нет активной пользовательской транзакции. -1 — в текущем запросе есть активная транзакция, однако произошла ошибка, из-за которой транзакция классифицируется как нефиксируемая. |
Функции безопастности:
CERTENCODED ( cert_id ) | Возвращает открытую часть сертификата в двоичном формате. |
CERTPRIVATEKEY (cert_ID, 'encryption_password '[,'decryption_password ']) | Возвращает закрытый ключ сертификата в двоичном формате. |
DATABASE_PRINCIPAL_ID ( 'principal_name' ) | Возвращает идентицикатор принципиала, в текущей базе. |
sys.fn_builtin_permissions ( '<securable_class>' ) | Возвращает описание иерархии встроенных разрешений сервера. |
fn_get_audit_file ( file_pattern, initial_file_name , audit_record_offset) | Возвращает сведения из файла аудита. |
fn_my_permissions ( securable , 'securable_class' ) | Возвращает список разрешений на защищаемый объект, фактически предоставленных участнику. |
HAS_PERMS_BY_NAME ( securable, securable_class, permission[, sub-securable ] [, sub-securable_class ] ) | Возвращает результат проверки доступа у текущего участника на защищаемый объект. Если права имеются возвращается 1, иначе 0. |
IS_MEMBER ( { 'group' | 'role' } ) | Возвращает результат проверки, является ли текущий участник членом указанной группы или роли. |
IS_ROLEMEMBER ( 'role' [ , 'database_principal' ] ) | Возвращает результат проверки, является ли текущий участник членом роли в указанной базе данных. |
IS_SRVROLEMEMBER ( 'role' [ , 'login' ] ) | Возвращает результат проверки, является ли данная учётная запись login членом роли role. |
ORIGINAL_LOGIN() | Возвращает текущее имя входа. |
PERMISSIONS ( [ objectid [ , 'column' ] ] ) | Возвращает битовую карту, указывающую разрешения на инструкции, объекты и столбцы для текущего пользователя. |
PWDCOMPARE ( 'clear_text_password', password_hash [ , version ] ) | Хэширует пароль и сравнивает хэш с хэшем существующего пароля. |
PWDENCRYPT ( 'password' )(устаревшее) HASHBYTES ( '<algorithm>', { @input | 'input' } ) |
Возвращает хэш входного значения. |
SCHEMA_ID ( [ schema_name ] ) | Возвращает идентификатор схемы, связанный с именем схемы. |
SCHEMA_NAME ( [ schema_id ] ) | Возвращает имя схемы, связанное с идентификатором схемы. |
SESSION_USER | Возвращает имя пользователя текущего контекста в текущей базе данных. |
SUSER_ID ( [ 'login' ] ) | Возвращает идентификационный номер имени входа пользователя. |
SUSER_SID ( [ 'login' ] [ , Param2 ] ) | Возвращает идентификатор безопасности (SID) для указанного имени входа. |
SUSER_SNAME ( [ server_user_sid ] ) | Возвращает имя входа, связанное с идентификатором безопасности (SID). |
SYSTEM_USER | Возвращает ID учётной записи текущего пользователя. |
SUSER_NAME ( [ server_user_id ] ) | Возвращает идентификационное имя учетной записи пользователя. |
USER_ID(user_name) | Возвращает идентификатор пользователя user_name. Если имя пользователя не задано, то возвращается идентификатор текущего пользователя. |
USER_NAME([id]) | Возвращает имя пользователя с идентификатором id. Если идентификатор не указан, возвращается имя текущего пользователя. |
CURRENT_USER | Возвращает имя текущего пользователя. |
Функции типов данных:
DATALENGTH ( expression ) | Вычисляет длину(в байтах) результата, полученного из выражения expression. |
IDENT_CURRENT( 'table_name' ) | Возврат последнего значения идентификатора, созданного для указанной таблицы или представления. |
IDENT_INCR ( 'table_or_view' ) | Возвращает добавочное значение (тип numeric (@@MAXPRECISION,0)), указанное во время создания столбца с уникальным идентификатором в таблице или представлении, которые содержат столбец идентификаторов. |
IDENT_SEED ( 'table_or_view' ) | Возвращает исходное начальное значение (вида numeric(@@MAXPRECISION,0)), указанное для столбца идентификаторов при создании таблицы или представления. |
IDENTITY (data_type [ , seed , increment ] ) AS column_name | Используется только в инструкции SELECT с предложением INTO table для вставки столбца идентификаторов в новую таблицу. Хотя они похожи, функция IDENTITY не является свойством IDENTITY, которое используется с инструкциями CREATE TABLE и ALTER TABLE. |
SQL_VARIANT_PROPERTY ( expression, property ) | Возвращает базовый тип данных и другие сведения о значении sql_variant. |
Функции метаданных
APPLOCK_MODE( 'database_principal' , 'resource_name' , 'lock_owner' ) | Возвращает режим блокировки ресурса resource_name, с владельцем блокировки lock_owner, и правами пользоватля или ролью database_principal. |
APPLOCK_TEST ( 'database_principal' , 'resource_name' , 'lock_mode' , 'lock_owner' ) | Возвращает 0 когда блокировка не может быть предоставлена указанному владельцу, иначе 1. |
@@PROCID | Возвращает идентификатор текущегей хранимой процедуры, пользовательской функции или триггера. Не вызывается из CLR среды или внутрипроцессного поставщика доступа к данным. |
APP_NAME() | Возвращает имя приложения, для текущего сеанса. |
ASSEMBLYPROPERTY('assembly_name', 'property_name') | Возвращает свойство property_name сборки assembly_name. |
COL_LENGTH ( 'table' , 'column' ) | Возвращает длину в байтах столбца column в таблице table. |
COL_NAME(tab_id, col_id) | Возвращает имя столбца с идентификатором col_id из таблицы, имеющей идентификатор tab_id. |
INDEX_COL ( '[ database_name . [ schema_name ] .| schema_name ] table_or_view_name', index_id , key_id ) | Возвращает имя индексированного столбца в таблице table_or_view_name. Столбец определяется по идентификатору индекса index_id и позиции столбца key_id в этом индексе. |
COLUMNPROPERTY (id, col, property) | Возвращает свойство property стобца col, в таблице или процедуры заданной идентификатором id. |
DATABASE_PRINCIPAL_ID ( 'principal_name' ) | Возвращает идентификатор принципала по его имени name, если не указать имя выводиться идентификатор текущего принципала. |
DATABASEPROPERTYEX (database, property) | Возвращает значение свойств property, из базы данных database. |
DB_ID (['db_name']) | Возвращает идентификатор базы данных с именем db_name. Если имя не задано, возвращает идентификатор текущей базы данных. |
DB_NAME ([db_id]) | Возвращает имя базы данных с идентификатором b_id. Если идентификатор не задан, возвращает имя текущей базы данных. |
FILE_ID ( file_name ) | Возвращает идентификатор файла в текущей базе данных с имем file_name. |
FILE_IDEX ( file_name ) | Возвращает идентификатор файла данных, файла журнала, или полнотекстового файла в текущей базе данных с имем file_name. |
FILE_NAME ( file_id ) | Возвращает имя файла в текущей базе данных с идентификатором file_id. |
FILEPROPERTY ( file_name , property ) | Возвращает свойство property файла file_name. |
FILEGROUP_ID ( 'filegroup_name' ) | Возвращает по имени файловой группы filegroup_name, её идентификатор. |
FILEGROUP_NAME (filegroup_id) | Возвращает имя файловой группы, по её идентификатору filegroup_id. |
FILEGROUPPROPERTY ( filegroup_name, property ) | Возвращает свойство property файловой группы filegroup_name. |
FULLTEXTCATALOGPROPERTY ('catalog_name', 'property') | Возвращает свойство property полнотекстового каталога catalog_name. Появилась с 2014 версии. |
FULLTEXTSERVICEPROPERTY ('property') | Возвращает свойство property механизма полнотекстового поиска. |
INDEXKEY_PROPERTY ( object_ID, index_ID, key_ID, property ) | Возвращает свойства property ключей индекса. Для XML-индексов возвращает NULL. |
INDEXPROPERTY ( object_ID, index_or_statistics_name, property ) | Возвращает свойство property именованного индекса или статистическое свойство таблицы. Заданной идентификационным номером, именем индекса, или статистики, или имененм свойства. Для XML-индексов возвращает NULL. |
NEXT VALUE FOR [ database_name . ] [ schema_name . ] sequence_name [ OVER (<over_order_by_clause>) ] | Формирует номер последовательности из указанного объекта последовательности. |
OBJECT_DEFINITION ( object_id ) | Возвращает исходный код, указанного объекта. Если не хватает прав или произошла ошибка, возвращает NULL. |
OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ] object_name' [,'object_type' ] ) | Возвращает идентификатор объекта базы данных, заданного именем object_name. |
SCOPE_IDENTITY() | Возвращает последнее значение идентификатора, созданные в таблицах во время текущего сеанса. |
OBJECT_NAME ( object_id [, database_id ] ) | Возвращает имя объекта базы данных, заданного своим идентификатором object_id. |
OBJECT_SCHEMA_NAME ( object_id [, database_id ] ) | Возвращает имя схемы базы данных. |
OBJECTPROPERTY ( id, property ) | Возвращает информацию об объектах текущей базы данных. |
OBJECTPROPERTYEX ( id, property ) | Возвращает информацию об объектах текущей базы данных. |
ORIGINAL_DB_NAME () | Возвращает имя базы данных, указанное при подключении к базе данных. |
PARSENAME ( 'object_name', object_piece ) | Возвращает часть имени базы данных object_name. Часть объекта выберается параметром object_piece. |
SCHEMA_ID ( [ schema_name ] ) | Возвращает идентификатор схемы schema_name. Если имя схемы является недопустимым, возвращает NULL. |
SCHEMA_NAME ( [ schema_id ] ) | Возвращает имя схемы, по идентификатору schema_id. Если идентификатор является недопустимым, возвращает NULL. |
SERVERPROPERTY ( propertyname ) | Возвращает свойство propertyname экземпляра сервера. |
STATS_DATE ( object_id, stats_id ) | Возвращает дату последнего обновления статистики для таблицы или индексированного представления. |
TYPE_ID ( [ schema_name ] type_name ) | Возвращает идентификатор типа данных type_name. |
TYPE_NAME ( type_id ) | Возвращает короткое имя типа, по идентификатору type_id. |
TYPEPROPERTY (type, property) | Возвращает свойство property, типа данных type. |
Выражения:
CASE input_expression WHEN when_expression THEN result_expression … [ ELSE else_result_expression ] END |
Возвращает result_expression если input_expression=when_expression. |
CASE WHEN Boolean_expression THEN result_expression … [ ELSE else_result_expression ] END |
Возвращает result_expression если Boolean_expression=TRUE. |
NULLIF(expr1, expr2) | Возвращает NULL, если значения выражений exp1 и exp2 равны. |
COALESCE(a1, a2, …) | Возвращает значение первого выражения, из списка (a1, a2, …), которое не является NULL. |
CHOOSE ( index, val_1, val_2 [, val_n ] ) | Возвращает элемент val_ с номером index. |
IIF ( boolean_expression, true_value, false_value ) | Возвращает значение true_value, если выражение boolean_expression=TRUE. Иначе возвращает false_value. |
Функции работы с курсорами:
@@CURSOR_ROWS | Возвращает число выбранных строк, имеющихся в последнем открытом курсоре в данном соединении. Для повышения производительности SQL Server может выполнять заполнение большого набора ключей и статических курсоров асинхронно. Функция @@CURSOR_ROWS может быть вызвана для определения того, что количество строк, определенных для курсора, получено во время вызова @@CURSOR_ROWS. |
@@FETCH_STATUS | Возвращает состояние последней инструкции FETCH, вызванной в любом курсоре, открытом в данном соединении. |
CURSOR_STATUS({'local', 'cursor_name'}|{'global', 'cursor_name' }|{'variable', 'cursor_variable' }) | Скалярная функция, позволяющая при вызове хранимой процедуры определить, вернула ли она курсор и результирующий набор для данного параметра. |
Комментарии: