Функция
Задает сравнение с шаблоном.
Формат
<предикат подобия> : : = | |||||
<спецификация столбца> [NOT] LIKE <шаблон> | |||||
[ESCAPE <спецсимвол> ] | |||||
<шаблон> : : = <спецификация значения> | |||||
<спецсимвол> : : = <спецификация значения> |
Правила синтаксиса
1) <спецификация столбца> должна относиться к столбцу строкового типа.
2) <шаблон> должен относиться к строковому типу данных.
3) <спецсимвол> должен представлять собой строку, включающую в себя один символ.
Общие правила
1) Обозначим значение, указанное с помощью <спецификации столбца>, буквой , а результат <спецификации значения>, с помощью которой задан <шаблон>, - буквой .
2) Возможны следующие варианты:
а) если задан <спецсимвол>, то:
- обозначим результат <спецификации значения>, задающей <спецсимвол>, буквой ;
- необходимо иметь строку , которая состоит из подстрок, включающих в себя либо 1, либо 2 символа; подстрока длиной в 1 символ не может быть спецсимволом , а в каждой подстроке длиной 2 символа первым должен быть спецсимвол , а вторым - либо спецсимвол , либо символ "подчеркивание", либо символ "процент". При таком формате строки каждая из двух символьных подстрок обозначает однократное появление второго символа подстроки. Односимвольная строка, представляющая собой символ "подчеркивание", - это признак произвольного символа. Односимвольная подстрока, представляющая собой символ "процент", - это признак произвольной строки символов. Все односимвольные подстроки, которые не являются символом "подчеркивание" или же символом "процент", обозначают те символы, которые составляют эти подстроки;
b) если <спецсимвол> не задан, то каждый символ "подчеркивание" в составе строки является признаком произвольного символа, каждый символ "процент" - признаком произвольной строки символов, а каждый символ строки , отличный от символов "подчеркивание" и "процент", обозначает сам себя.
3) Строка символов представляет собой последовательность, включающую в себя минимальное количество признаков подстрок, при этом каждый <символ> строки может входить в состав только одного признака подстроки. Признак подстроки - это признак произвольного символа или признак произвольной строки символов, или любая последовательность <символ>ов, отличных от признака произвольного символа или признака произвольной строки символов.
4) Результатом предиката " LIKE " будет неизвестное значение, если или - неопределенные значения. Если и являются определенными значениями, то результатом " LIKE " будут либо значение "истина", либо значение "ложь".
5) Результатом предиката " LIKE " будет значение "истина", если можно разделить на подстроки следующим образом:
a) подстрока в составе представляет собой последовательность, состоящую из нуля или более соседних <символ>ов из , причем каждый <символ> из входит в состав только одной подстроки;
b) если -й признак подстроки в является признаком произвольного символа, то -я подстрока в включает в себя один любой символ;
c) если -й признак подстроки в является признаком произвольной строки символов, то -я подстрока в включает в себя любую последовательность из нуля или более <символ>ов;
d) если -й признак подстроки в не является ни признаком произвольного символа, ни признаком произвольной строки символов, то -я подстрока в должна совпадать с признаком подстроки и иметь ту же длину, что и данный признак подстроки;
е) количество подстрок в должно быть равно количеству признаков подстрок в .
6) результат предиката " NOT LIKE " равен результату "NOT ( LIKE )".