[NOT]LIKE <Выражение для вычисления значения строки>
[ESCAPE <символ>]
Предикат LIKE сравнивает строку, указанную в первом выражении, для вычисления значения строки, называемого проверяемым значением, с образцом, который определен во втором выражении для вычисления значения строки. В образце разрешается использовать два трафаретных символа:
символ подчеркивания (_), который можно применять вместо любого единичного символа в проверяемом значении;
символ процента (%) заменяет последовательность любых символов (число символов в последовательности может быть от 0 и более) в проверяемом значении.
Если проверяемое значение соответствует образцу с учетом трафаретных символов, то значение предиката равно TRUE. Ниже приводится несколько примеров написания образцов.
Образец
Описание
'abc%'
Любые строки, которые начинаются с букв «abc»
'abc_'
Строки длиной строго 4 символа, причем первыми символами строки должны быть «abc»
'%z'
Любая последовательность символов, которая обязательно заканчивается символом «z»
'%Rostov%'
Любая последовательность символов, содержащая слово «Rostov» в любой позиции строки
'% % %'
Текст, содержащий не менее 2-х пробелов, например, "World Wide Web"
Пример 5.4.1
Найти все корабли, имена классов которых заканчиваются на букву ‘о’
Если искомая строка содержит трафаретный символ, то следует задать управляющий символ в предложении ESCAPE. Этот управляющий символ должен использоваться в образце перед трафаретным символом, сообщая о том, что последний следует трактовать как обычный символ. Например, если в некотором поле следует отыскать все значения, содержащие символ «_», то шаблон ‘%_%’ приведет к тому, что будут возвращены все записи из таблицы. В данном случае шаблон следует записать следующим образом:
'%#_%' ESCAPE '#'
Для проверки значения на соответствие строке «25%» можно воспользоваться таким предикатом:
LIKE'25|%' ESCAPE '|'
Истинностное значение предиката LIKE присваивается в соответствии со следующими правилами:
если либо проверяемое значение, либо образец, либо управляющий символ есть NULL, истинностное значение равно UNKNOWN;
в противном случае, если проверяемое значение и образец имеют нулевую длину, истинностное значение равно TRUE;
в противном случае, если проверяемое значение соответствует шаблону, то предикат LIKE равен TRUE;
если не соблюдается ни одно из перечисленных выше условий, предикат LIKE равен FALSE.