Функция SUBSTRING
в PostgreSQL используется для извлечения части строки по заданным параметрам.
Синтаксис
SUBSTRING(строка FROM начальная_позиция FOR длина)
или альтернативный синтаксис:
SUBSTRING(строка, начальная_позиция, длина)
строка
— исходный текст.начальная_позиция
— позиция, с которой начинается извлечение.длина
— количество символов, которое нужно извлечь.
Примеры использования
Извлечение части строки
SELECT SUBSTRING('PostgreSQL' FROM 1 FOR 4); -- Результат: 'Post'
SELECT SUBSTRING('PostgreSQL', 1, 4); -- Результат: 'Post'
SELECT SUBSTRING('Привет, мир!' FROM 9 FOR 3); -- Результат: 'мир'
Использование с таблицами
SELECT id, name, SUBSTRING(name FROM 1 FOR 3) AS short_name FROM users;
Этот запрос извлекает первые три символа из каждого имени в таблице users
.
Извлечение с использованием регулярных выражений
SELECT SUBSTRING('email@example.com' FROM '^[^@]+'); -- Результат: 'email'
Этот пример использует регулярное выражение для извлечения части строки перед символом @
.
Особенности
SUBSTRING
поддерживает как позиционное извлечение, так и использование регулярных выражений.- В случае выхода за пределы строки результатом будет пустая строка.
- Если начальная позиция меньше 1, функция вернёт пустую строку.
SELECT SUBSTRING('PostgreSQL' FROM 0 FOR 4); -- Результат: ''