Рядкистандарт SQL

SUBSTRING

Вирізає частину рядка: з потрібної позиції й потрібної довжини.

Синтаксис

SUBSTRING(<текст> FROM <початок>)
SUBSTRING(<текст> FROM <початок> FOR <довжина>)
SUBSTRING(<текст>, <початок>, <довжина>)

Позиції рахуються з 1. FROM — з якого символу почати, FOR — скільки символів узяти; без FOR береться все до кінця. Запис через коми робить те саме.

Дані для прикладів

employees

namedepartmentsalarybonusphone
Emmabackend1200300+44 7700 900123
Liambackend1000NULLNULL
Oliviafrontend1350150+44 7700 900456
Noahfrontend950NULL+44 7700 900789
Sophiadesign1200200NULL

Ці таблиці вже створено в пісочниці — приклади нижче працюють із ними. Хочеш повторити у своїй базі — скопіюй SQL.

Частини слова
SELECT SUBSTRING('database' FROM 1 FOR 4) AS first_part,
SUBSTRING('database' FROM 5) AS rest;
first_partrest
database
Перша літера імені
SELECT name,
SUBSTRING(name FROM 1 FOR 1) AS initial
FROM employees;
nameinitial
EmmaE
LiamL
OliviaO
NoahN
SophiaS
Код країни з телефону
SELECT name, phone,
SUBSTRING(phone FROM 1 FOR 3) AS country_code
FROM employees;
namephonecountry_code
Emma+44 7700 900123+44
LiamNULLNULL
Olivia+44 7700 900456+44
Noah+44 7700 900789+44
SophiaNULLNULL

Де телефону нема, результат теж NULL.

Зверни увагу

Позиції починаються з 1, а не з 0. SUBSTRING('abc' FROM 0 FOR 2) поверне лише a: «нульового» символу нема, але місце в довжині він займає.

FOR — це довжина, а не позиція кінця: SUBSTRING('database' FROM 5 FOR 3) дає bas.

Якщо замість числа передати шаблон, SUBSTRING шукатиме за регулярним виразом: SUBSTRING('order #1234' FROM '[0-9]+') дає 1234.

Схожі функції