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

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

strpos(string text, substring text)

string: в которой следует производить поиск.

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

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

Найти позицию подстроки:

SELECT strpos('PostgreSQL Expert','Expert');

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

Результат:

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

SELECT strpos('PostgreSQL Expert','wizard');

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

Результат:

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

SELECT strpos('PostgreSQL Expert','expert');

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

Результат:

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

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

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

SELECT *, strpos(content, 'PostgreSQL') AS position_of_postgreql FROM Texts;

Объяснение

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

Результат:

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

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

SELECT * FROM Texts WHERE strpos(content, 'PostgreSQL') > 0;

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

Результат: