SUBSTRING в SQL используют, чтобы получить часть строки. Например, взять первые символы артикула, вырезать код из номера, получить фрагмент текста или разобрать простую строковую метку
Базовый пример в SQL Server:
SELECT SUBSTRING('ABC-2026-001', 1, 3) AS code;
Результат будет ABC: начиная с первой позиции, взять три символа
Как работает SUBSTRING
Обычно у функции три части: строка, начальная позиция и длина фрагмента
SUBSTRING(строка, старт, длина)
Для строки ABC-2026-001 запрос ниже берет год
SELECT SUBSTRING('ABC-2026-001', 5, 4) AS year_part;
Результат будет 2026, потому что год начинается с пятого символа и занимает четыре символа
SUBSTRING в разных базах
В SQL Server и MySQL часто используют такой вариант:
SELECT SUBSTRING(name, 1, 3)
FROM products;
В PostgreSQL тоже есть substring, но встречается и синтаксис через FROM и FOR
SELECT substring(name FROM 1 FOR 3)
FROM products;
В SQLite похожая функция называется substr
SELECT substr(name, 1, 3)
FROM products;
Если пример из интернета не запускается, проверьте, для какой базы он написан
Как вырезать часть значения из столбца
Допустим, артикул товара состоит из кода категории, года и номера
BOOK-2026-015
Можно получить первые четыре символа как код категории
SELECT
article,
SUBSTRING(article, 1, 4) AS category_code
FROM products;
Если структура строки стабильная, такой подход работает. Если длина частей разная, одного SUBSTRING может быть мало, понадобятся функции поиска позиции символа
Мини-практика
Создайте таблицу товаров с артикулами и вырежьте год
CREATE TABLE products (
id INTEGER,
article TEXT
);
INSERT INTO products (id, article) VALUES
(1, 'BOOK-2026-015'),
(2, 'TECH-2025-044'),
(3, 'HOME-2026-008');
SELECT
article,
SUBSTRING(article, 6, 4) AS year_part
FROM products;
Если работаете в SQLite, замените SUBSTRING на substr
SELECT
article,
substr(article, 6, 4) AS year_part
FROM products;
Частые ошибки
Первая ошибка — считать позиции с нуля. В большинстве SQL-функций строки позиция начинается с 1, а не с 0
Вторая ошибка — забыть, что длина фрагмента задается отдельно. Третий аргумент обычно означает сколько символов взять, а не на какой позиции остановиться
Третья ошибка — применять SUBSTRING к строкам с разной структурой. Если часть строк содержит BOOK-2026-015, а часть просто 15, результат будет непредсказуемым для отчета
Что почитать дальше по SQL
Если нужен общий маршрут по теме, откройте рубрику SQL. Для соседних задач пригодятся эти разборы:
- DELETE SQL: как удалить строки из таблицы и не потерять лишние данные
- ALTER TABLE в SQL: как добавить, изменить и удалить столбец
- BETWEEN SQL: как выбрать значения в диапазоне
- CREATE TABLE SQL: как создать таблицу запросом
Как проверить результат на практике
Для SQL-материала всегда начинайте с маленькой тестовой таблицы или с ограниченного набора строк. Сначала выполните SELECT, который показывает будущие данные, затем проверьте условие WHERE, сортировку или соединение, и только после этого переходите к изменяющим командам вроде UPDATE, DELETE или ALTER TABLE. Такой порядок снижает риск случайно изменить больше строк, чем планировалось
Хорошая самопроверка простая: заранее запишите, сколько строк должно попасть в результат, какие столбцы должны измениться и что должно остаться без изменений. Если запрос возвращает неожиданный набор строк, не добавляйте новые условия вслепую, а проверьте каждую часть отдельно: фильтр, соединение, группировку и сортировку



