SUBSTRING SQL: как вырезать часть строки

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. Для соседних задач пригодятся эти разборы:

Как проверить результат на практике

Для SQL-материала всегда начинайте с маленькой тестовой таблицы или с ограниченного набора строк. Сначала выполните SELECT, который показывает будущие данные, затем проверьте условие WHERE, сортировку или соединение, и только после этого переходите к изменяющим командам вроде UPDATE, DELETE или ALTER TABLE. Такой порядок снижает риск случайно изменить больше строк, чем планировалось

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

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x