Функция SUBSTR DB2/SQL

Описание функции SUBSTR

Функция SUBSTR возвращает из строки подстроку заданной длины, начиная с указанного символа.

Синтаксис вызова функции SUBSTR определяется следующим образом:

SUBSTR( ИСХОДНАЯ_СТРОКА, НОМЕР_НАЧАЛЬНОГО_СИМВОЛА, [ ДЛИНА_ПОДСТРОКИ ] )

Первый параметрИСХОДНАЯ_СТРОКА – определяет строку из которой должен быть получен результат обработки. Это может символьная строка, бинарная строка ( BINARY, VARBINARY, BLOB ), графическая строка ( GRAPHIC, VARGRAPHIC, DBCLOB ). Если параметр является символьной строкой, результат обработки функции SUBSTR – символьная строка. Если параметр – бинарная строка, результат обработки – бинарная строка. Если параметр – графическая строка, результат обработки – графическая строка.

Первый аргумент может быть числом. В этом случае он неявно приводится к типу VARCHAR.

Второй аргументНОМЕР_НАЧАЛЬНОГО_СИМВОЛА – определяет номер символа в исходной строке начиная с 1, с которого будет производится вычисление результата. Номер начального символа должен находиться в пределах от 1 до длины исходной строки.

Второй аргумент может быть символьной (или графической) строкой. В этом случае он неявно приводится к типу DECFLOAT (34), а затем к INTEGER.

Третий аргументДЛИНА_ПОДСТРОКИможет отсутствовать в вызове функции. Он указывает длину результирующей подстроки. Также может быть символьной (или графической) строкой. В этом случае он неявно приводится к типу DECFLOAT (34), а затем к INTEGER. Аргумент должен быть больше или равен 0.

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

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


Пример использования функции SUBSTR

Предположим у нас есть таблица TEST.PEOPLES и столбец NAME типа VARCHAR. Нужно выбрать 3 первые буквы из полей столбца NAME. Код SQL для выполнения такого запроса будет следующим:

SELECT SUBSTR( NAME, 1, 3 ) FROM TEST.PEOPLES;
avatar
5000
  Подписаться  
Уведомление о