Substring (transact-sql)

Вираз типу character. binary. text. ntext або image.

Ціле число або вираз типу bigint. вказує початкову позицію повертаються символів. Якщо аргумент start_expression має значення менше 1, що повертається вираз починається з першого символу, який вказаний в аргументі value_expression. У цьому випадку кількість повертаються символів являє собою найбільшу з двох значень: суми start_expression і length_expression або 0. Якщо значення start_expression більше кількості символів в вираженні значення, то повертається вираз з нульовою довжиною.

Позитивне ціле число або вираз типу bigint. вказує кількість символів вираження value_expression. яке буде повернуто. Якщо значення length_expression негативно, формується помилка і виконання інструкції переривається. Якщо сума start_expression і length_expression більше кількості символів в value_expression. то повертається целочисленное вираз значення, що починається зі значення start_expression.

Повертає символьні дані, якщо вираз має один з підтримуваних символьних типів даних. Повертає двійкові дані, якщо вираз має один з підтримуваних довічних типів даних. Повернута рядок має той же самий тип, як і заданий вираз. Винятки вказані в таблиці.

Значення start_expression і length_expression повинні бути вказані у вигляді кількості символів для типів даних ntext. char або varchar і байтів для типів даних text. image. binary або varbinary.

Значення value_expression повинно мати тип varchar (max) або varbinary (max). якщо аргумент start_expression або length_expression містить значення більше 2147483647.

Рівні сумісності можуть впливати на повернені значення. Додаткові відомості про рівні сумісності див. В розділі sp_dbcmptlevel (Transact-SQL).

А. Використання SUBSTRING з символьним рядком

Наступний приклад показує, як отримати частину символьного рядка. З таблиці Contact даний запит повертає прізвище в одному стовпці і першу букву імені в іншому.

Нижче наводиться результуючий набір.

(Опрацьовано рядків: 2)

Далі показано, як можна вивести другий, третій і четвертий символ строкової константи abcdef.