Функция position() в PostgreSQL используется для поиска местоположения подстроки в строке. Она возвращает позицию первого вхождения подстроки. Если подстрока не найдена, она возвращает 0.

Синтаксис – функция position() в PostgreSQL

position(substring text IN string text)

substring: подстрока для поиска

string: Строка, в которой следует искать

Примеры – функция position() в PostgreSQL

  1. Найти позицию подстроки:
SELECT position('Expert' IN 'PostgreSQL Expert');

Объяснение:Подстрока «Expert» начинается с 12-й позиции в строке «PostgreSQL Expert».

Результат:

2. Подстрока не найдена

SELECT position('wizard' IN 'PostgreSQL Expert');

Объяснение:Подстрока ‘wizard’ не найдена в строке ‘PostgreSQL Expert’. Если подстрока не найдена, она вернет Zero, поэтому вывод будет

Результат:

3. Чувствительность к регистру

SELECT position('expert' IN 'PostgreSQL Expert');

Объяснение:Функция position() чувствительна к регистру, поэтому ‘expert’ не найден в строке ‘PostgreSQL Expert’. Если подстрока не найдена, она вернет Zero, поэтому вывод будет

Результат:

Использование position() для столбца в PostgreSQL:

Мы можем использовать функцию position() для столбца таблицы, чтобы найти позицию подстроки в значении каждой строки.

Мы будем использовать таблицу “Texts”.

SELECT *, position('PostgreSQL' IN content) AS position_of_PostgreSQL FROM Texts;

Объяснение

  • Запрос возвращает идентификатор, содержимое и позицию подстроки «PostgreSQL» в каждом содержимом.
  • Если подстрока «PostgreSQL» не найдена, возвращается 0.

Результат:

Использование функции position() для фильтрации строк на основе наличия строки/подстроки:

Функцию position() можно использовать для фильтрации строк на основе наличия или отсутствия строки или подстроки.

SELECT * FROM Texts WHERE position('PostgreSQL' IN content) > 0;

Этот запрос выбирает строки, в которых в столбце содержимого встречается подстрока «PostgreSQL».

Результат: