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