В этом руководстве вы узнаете, как использовать функцию SQL Server CHARINDEX() для поиска подстроки в строке.
- Обзор функции SQL Server CHARINDEX()
- Примеры функций SQL Server CHARINDEX()
- 1) Использование SQL Server CHARINDEX() для выполнения одиночного поиска
- 2) Использование функции CHARINDEX() для выполнения поиска без учета регистра
- 3) Использование функции CHARINDEX() для выполнения поиска с учетом регистра
- 4) Использование функции CHARINDEX() для поиска несуществующей подстроки
- 5) Использование функции CHARINDEX() для поиска с определенной позиции
- Краткое содержание
Обзор функции SQL Server CHARINDEX()
Функция SQL Server CHARINDEX() ищет подстроку внутри строки, начиная с указанного местоположения. Она возвращает позицию подстроки, найденной в искомой строке, или ноль, если подстрока не найдена. Начальная возвращаемая позиция начинается с 1, а не с 0.
Вот синтаксис функции CHARINDEX():
CHARINDEX(substring, string [, start_location])
В этом синтаксисе:
- подстрока — подстрока для поиска. Ее длина ограничена 8000 символами.
- string может быть литеральной строкой, выражением или столбцом. Это строка для поиска.
- start_location — это местоположение, с которого начинается поиск. Start_location — это целое число, большое целое число или выражение, которое вычисляется как значение этих типов данных.
Параметр start_location необязателен. Если он пропущен, равен нулю или отрицательному значению, поиск начинается с начала строки.
Обратите внимание, что функция CHARINDEX() может выполнять как чувствительный, так и нечувствительный к регистру поиск на основе указанного сопоставления.
Примеры функций SQL Server CHARINDEX()
Давайте рассмотрим несколько примеров использования функции CHARINDEX().
1) Использование SQL Server CHARINDEX() для выполнения одиночного поиска
В следующем примере функция CHARINDEX() используется для выполнения простого поиска строки «SQL» в «SQL Server CHARINDEX».
SELECT CHARINDEX('SQL', 'SQL Server CHARINDEX') position;
Вот что получилось:
position ----------- 1 (1 row affected)
2) Использование функции CHARINDEX() для выполнения поиска без учета регистра
В этом операторе показано, как использовать функцию CHARINDEX() для выполнения поиска без учета регистра строки «SERVER» в «SQL Server CHARINDEX»:
SELECT CHARINDEX( 'SERVER', 'SQL Server CHARINDEX' ) position;
Выход:
position ----------- 5 (1 row affected)
3) Использование функции CHARINDEX() для выполнения поиска с учетом регистра
В следующем примере функция CHARINDEX() используется для выполнения поиска строки «SERVER» с учетом регистра в строке SQL Server CHARINDEX.
SELECT CHARINDEX( 'SERVER', 'SQL Server CHARINDEX' COLLATE Latin1_General_CS_AS ) position;
Выход:
position ----------- 0 (1 row affected)
4) Использование функции CHARINDEX() для поиска несуществующей подстроки
В следующем примере функция CHARINDEX() используется для поиска подстроки «needle» в строке «This is a haystack»:
DECLARE @haystack VARCHAR(100); SELECT @haystack = 'This is a haystack'; SELECT CHARINDEX('needle', @haystack);
Выход:
position ----------- 0 (1 row affected)
5) Использование функции CHARINDEX() для поиска с определенной позиции
В этом примере параметр start_location используется для начала поиска «is» с пятого и десятого символа строки «Это моя сестра»:
SELECT CHARINDEX('is','This is a my sister',5) start_at_fifth, CHARINDEX('is','This is a my sister',10) start_at_tenth;
Вот что получилось:
start_at_fifth start_at_tenth -------------- -------------- 6 15 (1 row affected)
Краткое содержание
- Используйте функцию SQL Server CHARINDEX() для поиска подстроки в строке, начиная с указанного места, и возврата позиции подстроки.