CHARINDEX (Transact-SQL)
Эта функция выполняет поиск одного символьного выражения внутри второго символьного выражения, возвращая начальную позицию первого выражения, если найдено.
Синтаксис
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.
Аргументы
expressionToFind
Символьное выражение, содержащее последовательность для поиска. expressionToFind имеет ограничение 8000 символов.
expressionToSearch
Символьное выражение, в котором производится поиск.
start_location
Выражение типа integer или bigint, с которого начинается поиск. Если аргумент start_location не указан, имеет отрицательное значение или равен нулю (0), то поиск начинается с начала выражения expressionToSearch.
Типы возвращаемых данных
bigint, если expressionToSearch имеет тип данных nvarchar(max), varbinary(max) или varchar(max); в противном случае int.
Замечания
Если выражение expressionToFind или expressionToSearch имеет тип данных Юникода (nchar или nvarchar), а второе выражение — нет, функция CHARINDEX преобразует такое другое выражение в тип данных Юникода. Функция CHARINDEX не поддерживает типы данных image, ntext и text.
Если выражение expressionToFind или expressionToSearch имеет значение NULL, то CHARINDEX возвращает значение NULL.
Если функции CHARINDEXне удается найти expressionToFind в expressionToSearch, она возвращает 0.
Функция CHARINDEX выполняет сравнения на основе параметров сортировки входных данных. Для выполнения сравнения в указанных параметрах сортировки используйте функцию COLLATE, чтобы явно указать параметры сортировки для входных данных.
Начальная возвращенная позиция начинается с 1, а не с 0.
Символ 0x0000 (char(0)) не определен в параметрах сортировки Windows, и его нельзя включать в CHARINDEX.
Дополнительные символы (суррогатные пары)
Если используются параметры сортировки SC, и в start_location, и в возвращаемом значении суррогатные пары учитываются как один символ, а не как два. Дополнительные сведения см. в статье Collation and Unicode Support.
Примеры
А. Возвращение начальной позиции выражения
В этом примере выполняется поиск bicycle в переменной строкового значения @document .
DECLARE @document VARCHAR(64); SELECT @document = 'Reflectors are vital safety' + ' components of your bicycle.'; SELECT CHARINDEX('bicycle', @document); GO
B. Поиск с конкретной позиции
В этом примере используется необязательный параметр start_location для запуска поиска vital в пятом столбце переменной строкового значения @document .
DECLARE @document VARCHAR(64); SELECT @document = 'Reflectors are vital safety' + ' components of your bicycle.'; SELECT CHARINDEX('vital', @document, 5); GO
----------- 16 (1 row(s) affected)
C. Поиск несуществующего выражения
В этом примере показан результирующий набор, который выводится если функции CHARINDEX не удается найти expressionToFind в expressionToSearch.
DECLARE @document VARCHAR(64); SELECT @document = 'Reflectors are vital safety' + ' components of your bicycle.'; SELECT CHARINDEX('bike', @document); GO
----------- 0 (1 row(s) affected)
D. Выполнение поиска с учетом регистра
В этом примере выполняется поиск строки ‘TEST’ в строке ‘This is a Test«’ с учетом регистра.
USE tempdb; GO --perform a case sensitive search SELECT CHARINDEX ( 'TEST', 'This is a Test' COLLATE Latin1_General_CS_AS);
В этом примере выполняется поиск строки ‘Test’ в ‘This is a Test’ с учетом регистра.
USE tempdb; GO SELECT CHARINDEX ( 'Test', 'This is a Test' COLLATE Latin1_General_CS_AS);
Д. Выполнение поиска без учета регистра
В этом примере выполняется поиск строки ‘TEST’ в ‘This is a Test’ без учета регистра.
USE tempdb; GO SELECT CHARINDEX ( 'TEST', 'This is a Test' COLLATE Latin1_General_CI_AS); GO
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
F. Поиск с начала строкового выражения
В этом примере возвращается первая позиция строки is в строке This is a string , начиная с позиции 1 (первого символа) в строке This is a string .
SELECT CHARINDEX('is', 'This is a string');
G. Поиск с позиции, отличной от первой
В этом примере возвращается первая позиция строки is в строке This is a string , начиная с позиции 4 (четвертого символа).
SELECT CHARINDEX('is', 'This is a string', 4);
H. Результаты в случае, если строка не найдена
В этом примере демонстрируется возвращаемое значение в случае, если функции CHARINDEX не удается найти строку string_pattern в строке.
SELECT TOP(1) CHARINDEX('at', 'This is a string') FROM dbo.DimCustomer;
Как найти слово в строке sql
Программирование на C++ в Unreal Engine 5
Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.
Параллельно с курсом Вы также будете получать домашние задания, результатом которых станет, в том числе, полноценная серьёзная работа для портфолио.
Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.
Уроки и статьи
Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.
![]()
Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.
![]()
Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.
![]()
Мой аккаунт Моя группа
Какая тема Вас интересует больше?
Бесплатный курс
Мастер-класс по созданию сайта на WordPress 6
Этот видеоурок длится всего 21 минуту, но уже в конце создан полностью рабочий сайт на WordPress (с применением ChatGPT). И весь процесс Вы увидите своими глазами, а повторить — не составит труда!
Чтобы получить Видеокурс,
заполните форму
Бесплатный онлайн-семинар
Как создать профессиональный Интернет-магазин
После семинара:
— Вы будете знать, как создать Интернет-магазин.
— Вы получите бесплатный подарок с подробным описанием каждого шага.
— Вы сможете уже приступить к созданию Интернет-магазина.
Артём Санников
Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Главная › Базы данных › MySQL › Работа со строками › Функция INSTR() в SQL
Функция INSTR() в SQL
Функция INSTR() выполняет поиск подстроки (указанного текста) в строке, и возвращает позицию её первого символа. В отличие от функции POSITION(), функция INSTR() имеет обратный порядок параметров, то есть мы сначала указываем поле где нужно искать, а затем что нужно искать.
Обратите внимание, что нумерация символов начинается с 1.
Синтаксис функции INSTR()
SELECT INSTR(поле_таблицы, что_будем_искать) FROM имя_таблицы WHERE условие_для_выборки;
Практический пример
Выполнить поиск слова Lorem по полю description в таблице text .
Исходная таблица: text

SELECT *, INSTR(description, 'Lorem') as instr_lorem FROM text
После выполнения запроса, будет выведена результирующая таблица с дополнительным столбцом instr_lorem , в котором будут отображены позиции первого символа подстроки.
Результирующая таблица

Записи по теме
- Функция LOCATE() в SQL
- Функция POSITION() в SQL
- Функция RIGHT() в SQL
- Функция LEFT() в SQL
- Функция RPAD() в SQL
- Функция LPAD() в SQL
- Функция REPEAT() в SQL
- Функция LOWER() и LCASE() в SQL
MySql. Поиск слова или строки
Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.

Задание: Необходимо найти, в каких полях таблицы, встречается запрошенное слово или строка и запросить данные всех полей таблиц, удовлетворяющих запросу.
Решением этой задачи будет служить SQL запрос содержащий оператора LIKE.
Приведу примитивный пример.
Представим, что у нас есть таблица с какими то данным:

Допустим нам нужно вывести все строки в поле text, которых содержится слово «статьи«.
Пишем запрос:
Логика запроса: получить данные всех полей таблицы post, где в поле text встречается слово «статьи«.
SELECT * FROM post WHERE text LIKE '%статьи%'
Результат выполнения запроса:
/* Affected rows: 0 Найденные строки: 2 Предупреждения: 0 Длительность 1 query: 0,000 sec. */
Запрос для поиска слова в начале строки:
Логика запроса: получить данные всех полей таблицы post, где в начале поля text встречается слово «статьи«.
SELECT * FROM post WHERE text LIKE 'статьи%'
Запрос для поиска слова в конце строки:
Логика запроса: получить данные всех полей таблицы post, где в конце поля text встречается слово «статьи«.
SELECT * FROM post WHERE text LIKE '%статьи'
Знак % внутри условия оператора LIKE говорит о том, что до или после необходимого для поиска слова «статьи» может находится какой то текст.
Новость отредактировал: Fixlix — 8-05-2019, 17:04
Причина: Дописана информация с примерами заросов для поиска слова в начале и конце строки
