SUBSTRING в PostgreSQL: извлечение подстроки

Функция 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);  -- Результат: ''