Встроенные функции Transact-SQL

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' }) Скалярная функция, позволяющая при вызове хранимой процедуры определить, вернула ли она курсор и результирующий набор для данного параметра.

Комментарии:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *