SQL Server — функция PATINDEX()

Опубликовано: 1 Сентября, 2022

Функция PATINDEX() на сервере SQL используется для возврата начального индекса первого вхождения шаблона в строку или указанное выражение.

  • Возвращает ноль, если шаблон не найден.
  • Он возвращает NULL, если шаблон или выражение имеют значение NULL.
  • Начальный индекс 1.

Синтаксис:

PATINDEX ( "%pattern%" , expression )

Параметров два и оба обязательны.

  • Шаблон — это последовательность, которая должна быть найдена в строке, которая должна быть окружена %. В шаблонах можно использовать другие подстановочные знаки. Шаблон имеет ограничение в 8000 символов. Другими подстановочными знаками являются «%», «-», «[]», «[^]».
  • Выражение — строка, которая ищется по указанному шаблону.

Применимый к:

Функция PATINDEX() применима к следующим базам данных.

  • SQL Server (все поддерживаемые версии)
  • База данных SQL Azure
  • Хранилище данных SQL Azure
  • Управляемый экземпляр Azure SQL
  • Система Azure Synapse Analytics Analytics Platform (PDW)
  • Параллельное хранилище данных

Предположим, мы хотим найти первое вхождение «ek» в строке «GeeksforGeeks». Тогда запрос будет выглядеть так:

Запрос:

SELECT PATINDEX("%ek%", "GeeksforGeeks");

Выход:

3

Теперь, если мы найдем первое вхождение буквы «z» в строке «GeeksforGeeks».

Запрос:

SELECT PATINDEX("%[z]%", "GeeksforGeeks");

Выход:

Он возвращает 0, потому что данная строка не содержит буквы 'z.

0

Возьмем другой пример поиска первого вхождения символа в строке «Как дела?».

Запрос:

SELECT position = PATINDEX("%[^ 0-9A-z]%", "How are you?");

Выход:

12

SQL