Разработка баз данных в Delphi. 11 Уроков


 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 "@"
                          получить список сотрудников,
                                                                       в имени которых содержится “_”
                                                                       (знак подчеркивания)



Содержание раздела