LIKE SQL Server

В этом учебном пособии вы узнаете, как использовать в SQL Server условие LIKE (Transact-SQL) для выполнения сопоставления с шаблоном с синтаксисом и примерами.

Описание

Условие LIKE SQL Server (Transact-SQL) определяет, совпадает ли указанная символьная строка с заданным шаблоном в предложении WHERE в операторе SELECT, INSERT, UPDATE или DELETE. Это позволяет выполнять сопоставление образцов.

Синтаксис

Синтаксис условия LIKE в SQL Server (Transact-SQL):

expression LIKE pattern [ ESCAPE 'escape_character' ]

Параметры или аргументы

expression - символьное выражение, такое как столбец или поле.
pattern - символьное выражение, содержащее подстановочный символ. Подстановочные символы, которые вы можете выбрать:

символ пояснение
% Позволяет вам сопоставлять любую строку любой длины (включая нулевую длину)
_ Позволяет вам сопоставлять один символ
[ ] Позволяет вам сопоставлять любой символ в скобках [] (например, [abc] будет соответствовать символам a, b или c)
[^] Позволяет вам сопоставлять любой символ, не находящийся в скобках [^] (например, [^ abc] будет соответствовать любому символу, который не является символом a, b или c)

escape_character - необязательный. Это позволяет вам проверять для буквенных экземпляров символа подстановки, например % или _.

Пример использования подстановочного символа % (символ процента)

Первый пример SQL Server LIKE, который мы рассмотрим, включает использование шаблона %.

Давайте объясним, как шаблон % работает в SQL Server условии LIKE. Мы хотим найти всех employees (сотрудников), чье имя last_name начинается с 'Б’.
Например:

Этот пример условия SQL Server LIKE вернет всех employees у которых last_name будет начинаться на 'Б' такие как ‘Брошкин’, ‘Баранников’, ‘Богомолец’ и т.д.

Вы также можете использовать групповой символ % несколько раз в одной строке. Например:

В этом примере SQL LIKE мы ищем всех employees (сотрудников), у которых last_name содержит букву 'o’.

Пример использования подстановочного символа _ (символ подчеркивания)

Затем давайте объясним, как подстановочный символ _ (символ подчеркивания) работает в условии SQL Server LIKE. Помните, что _ ищет только один символ.
Например:

Этот пример условия SQL LIKE возвращает всех employees (сотрудников), чье имя last_name равно 4 символам, причем первые два символа - «Кр», а последний символ - «т». Например, он может вернуть сотрудников, чье last_name является «Крот», «Крат», «Крут», «Крит» и т.д.

Вот еще один пример:

Вам может понадобиться найти номер employee_number, но у вас есть только 3 из 4 цифр. В приведенном выше примере будет извлечено потенциально 10 записей (где отсутствующее значение могло бы равняться чему угодно от 0 до 9). Например, он может вернуть employees, чьи employee_number:

1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239

Пример использования подстановочного символа [] (квадратные скобки).

Далее, давайте объясним, как подстановочный символ [] (квадратные скобки) работает в условии SQL Server LIKE. Помните, что то, что содержится в квадратных скобках, это символы, которые вы пытаетесь сопоставить.
Например:

Этот пример условия LIKE SQL Server возвращает всех employees, чье имя first_name равно 5 символам, причем первый символ - «К», а три последних символа - «тов», а второй символ - «и» или «о». Таким образом, в этом случае он будет соответствовать либо «Китов», либо «Котов».

Пример использования подстановочного символа [^] (квадратные скобки с символом ^).

Затем давайте объясним, как подстановочный символ [^] (квадратные скобки с подстановочным символом ^) работает в условии SQL Server LIKE. Помните, что то, что содержится в квадратных скобках, это символы, которые вы НЕ хотите сопоставлять.
Например:

Этот пример условия SQL Server LIKE возвращает всех сотрудников, чье имя first_name равно 5 символам, причем первый символ - «К», а три последних символа - «тов», а второй символ не является «и» или «о». Таким образом, в этом случае он будет соответствовать таким значениям, как «Катов», «Кутов», «Кетов» и т.д. Но это не будет соответствовать ни «Китов», ни «Котов».

Пример использования оператора NOT

Затем давайте посмотрим, как использовать SQL Server NOT Operator с помощью подстановочных символов.

Будем использовать % с оператором NOT. Вы также можете использовать условие SQL LIKE для поиска employees (сотрудников), имя которых не начинается с буквы «Б».
Например:

Поместив оператор NOT перед условием LIKE SQL Server, вы сможете получить всех employees, имя которых не начинается с «Б».

Пример использования символов Escape

Важно понимать, как сопоставить «Escape Characters» с pattern. Эти примеры относятся конкретно к экранирующим символам в SQL Server.

Предположим, вы хотели найти символ % или _ в условии SQL Server LIKE. Вы можете сделать это, используя символ Escape.

Обратите внимание, что вы можете определить escape-символ только как один символ (length = 1).
Например:

Этот пример условия SQL LIKE идентифицирует символ ! как escape-символ. Это предложение вернет всех employees, чей secret_hint составляет 123%455.

Вот еще один более сложный пример использования escape-символов в SQL Server условии LIKE.

Этот пример условия SQL LIKE возвращает всех employees, чей secret_hint начинается с 'H' и заканчивается на '%'. Например, он возвращает значение, например «Help%».

Вы также можете использовать escape-символ с символом _ в условии SQL Server LIKE.
Например:

Этот пример условия SQL LIKE возвращает всех employees, чей secret_hint начинается с 'H' и заканчивается на '_'. Например, он вернет значение, например «Help_».