<Предикат like> (<like predicate>)
Функция
Специфицирует сравнение по совпадению с образцом.
Формат
<like predicate> ::=
<column specification> [NOT] LIKE <pattern>
[ESCAPE <escape character>]
<pattern> ::=
<value specification>
<escape character> ::=
<value specification>
Синтаксические правила
Общие правила
a) Если указывается <символ escape> (<escapecharacter>), то:
i) Пусть z обозначает результат <спецификации значения> (<value specification>) <символа escape> (<escape character>).
ii) Должно существовать разбиение строки y на подстроки такое, что каждая подстрока имеет длину 1 или 2, никакая подстрока длины 1 не содержит символа escape z, и каждая подстрока длины 2 начинается с символа escape z, за которым следует либо символ escape z, либо символ подчеркивания, либо символ знака процента. В этом разбиении y каждая подстрока длины 2 представляет одно вхождение второго символа этой подстроки. Каждая подстрока длины 1, содержащая символ подчеркивания, представляет спецификатор произвольного символа. Каждая подстрока длины 1, содержащая знак процента, представляет спецификатор произвольной строки. Каждая подстрока длины 1, не содержащая ни символа подчеркивания, ни символа знака процента, представляет символ, который она содержит.
b) Если <символ escape> (<escape character>) не указан, то каждый символ подчеркивания в y представляет спецификатор произвольного символа, каждый символ знака процента в y представляет спецификатор произвольной строки, и каждый символ в y, который не является ни символом подчеркивания, ни символом знака процента, представляет сам этот символ.
a) Подстрока x является последовательностью нуля или более подряд идущих <символов> (<character>) x, и каждый <символ> (<character>) x есть часть в точности одной подстроки.
b) Если i-ый спецификатор подстроки y является спецификатором произвольного символа, i-ая подстрока x состоит из одного произвольного <символа> (<character>).
c) Если i-ый спецификатор подстроки y является спецификатором произвольной строки, i-ая подстрока x является произвольной последовательностью нуля или более <символов> (<character>).
d) Если i-ый спецификатор подстроки y не является ни спецификатором произвольного символа, ни спецификатором произвольной строки, i-ая подстрока x совпадает с этим спецификатором подстроки и имеет ту же длину, что этот спецификатор подстроки.
e) Число подстрок x равно числу спецификаторов подстрок y.