LIKE
Предикат LIKE используется только с символьными данными. Он проверяет, соответствует ли данное символьное значение строке с указанной маской. В качестве маски используются все разрешенные символы (с учетом верхнего и нижнего регистров), а также специальные символы:
% - замещает любое количество символов (в том числе и 0),
_ - замещает только один символ.
Разрешено также использовать конструкцию NOT LIKE.
SELECT first_name, last_name
FROM employee
WHERE last_name LIKE "F%" получить список сотрудников,
фамилии которых начинаются с буквы “F”
FIRST_NAME LAST_NAME
=============== ====================
Phil Forest
Pete Fisher
Roberto Ferrari
SELECT first_name, last_name
FROM employee
WHERE first_name LIKE "%er" получить список сотрудников,
имена которых заканчиваются буквами “er”
FIRST_NAME LAST_NAME
=============== ====================
Roger De Souza
Roger Reeves
Walter Steadman
А такой запрос позволяет решить проблему произношения (и написания) имени:
SELECT first_name, last_name
FROM employee
WHERE first_name LIKE "Jacq_es"
найти сотрудника(ов),
в имени которого
неизвестно произношение
буквы перед окончанием “es”
FIRST_NAME LAST_NAME
=============== ====================
Jacques Glon
Что делать, если требуется найти строку, которая содержит указанные выше специальные символы (“%”, “_”) в качестве информационных символов? Есть выход! Для этого с помощью ключевого слова ESCAPE нужно определить так называемый escape?символ, который, будучи поставленным перед символом “%” или “_”, укажет, что этот символ является информационным. Escape?символ не может быть символом “\” (обратная косая черта) и, вообще говоря, должен представлять собой символ, никогда не появляющийся в упоминаемом столбце как информационный символ. Часто для этих целей используются символы “@” и “~”.
SELECT first_name, last_name
FROM employee
WHERE first_name LIKE "%@_%" ESCAPE "@"
получить список сотрудников,
в имени которых содержится “_”
(знак подчеркивания)