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