Сопоставление с шаблоном в SQL-запросах с использованием подстановочных знаков

Сопоставление шаблонов SQL позволяет вам искать шаблоны в данных, если вы не знаете точное слово или фразу, которую ищете. Этот вид SQL В запросе используются подстановочные знаки для соответствия шаблону, а не для его точного указания. Например, вы можете использовать подстановочный знак «C%» для соответствия любой строке, начинающейся с заглавной C.

Увеличительное стекло
Кейт Тер Хаар / Flickr / CC от 2.0

Использование оператора LIKE

Чтобы использовать выражение с подстановочными знаками в запросе SQL, используйте оператор LIKE в предложении WHERE и заключите шаблон в одинарные кавычки.

Использование подстановочного знака% для выполнения простого поиска

Чтобы найти в базе данных любого сотрудника с фамилией, начинающейся с буквы C, используйте следующую инструкцию Transact-SQL:

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ last_name КАК 'C%'

Пропуск шаблонов с использованием ключевого слова NOT

Используйте ключевое слово NOT для выбора записей, не соответствующих шаблону. Например, этот запрос возвращает все записи, последнее имя которых нет начинаются с C:

instagram viewer
ВЫБРАТЬ *
ОТ сотрудников
ГДЕ last_name НЕ НРАВИТСЯ 'C%'

Сопоставление с шаблоном в любом месте с использованием подстановочного знака% дважды

Используйте два экземпляра % подстановочный знак для соответствия определенному шаблону в любом месте. В этом примере возвращаются все записи, содержащие букву C в любом месте фамилии:

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ last_name КАК '% C%'

Поиск совпадения с шаблоном в определенной позиции

Использовать _ подстановочный знак для возврата данных в определенном месте. Этот пример соответствует только в том случае, если C встречается в третьей позиции столбца с фамилией:

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ last_name LIKE '_ _C%'

Поддерживаемые выражения с подстановочными знаками в Transact SQL

Transact SQL поддерживает несколько выражений с подстановочными знаками:

  • В % Подстановочный знак соответствует нулю или более символам любого типа и может использоваться для определения подстановочных знаков как до, так и после шаблона. Если вы знакомы с сопоставлением шаблонов DOS, это эквивалент подстановочного знака * в этом синтаксисе.
  • В _ подстановочный знак соответствует ровно одному символу любого типа. Это эквивалент ? подстановочный знак в сопоставлении с образцом DOS.
  • Укажите список символов, заключив их в квадратные скобки. Например, подстановочный знак [aeiou] соответствует любой гласной.
  • Укажите диапазон символов, заключив диапазон в квадратные скобки. Например, подстановочный знак [являюсь] соответствует любой букве в первой половине алфавита.
  • Отмените диапазон символов, включив символ карата непосредственно в открывающую квадратную скобку. Например, [^ aeiou] соответствует любому негласному символу, а [^ а-м] соответствует любому символу не в первой половине алфавита.

Комбинирование подстановочных знаков для сложных шаблонов

Объединяйте эти подстановочные знаки в сложные шаблоны для выполнения более сложных запросов. Например, предположим, что вам нужно составить список всех ваших сотрудников, имена которых начинаются с буквы из первой половины алфавита, но имеют: нет заканчиваться гласной. Вы можете использовать следующий запрос:

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ last_name LIKE '[a-m]% [^ aeiou]'

Точно так же вы можете составить список всех сотрудников с фамилиями, состоящими ровно из четырех символов, используя четыре экземпляра _ шаблон:

ВЫБРАТЬ *
ОТ сотрудников
ГДЕ last_name КАК '____'

Как вы можете заметить, использование возможностей сопоставления с образцом SQL дает пользователям баз данных возможность выйти за рамки простых текстовых запросов и выполнять расширенные операции поиска.