Системы обработки информации - язык баз данных SQL


<Предикат like> (<like predicate>)


Функция

Специфицирует сравнение по совпадению с образцом.

Формат

<like predicate> ::=

<column specification> [NOT] LIKE <pattern>

[ESCAPE <escape character>]

<pattern> ::=

<value specification>

<escape character> ::=

<value specification>

Синтаксические правила

  1. <Спецификация столбца> (<column specification>) должна указывать на столбец символьных строк.
  2. Тип данных <образца> (<pattern>) должен быть типом символьных строк.
  3. Тип данных <символа escape> (<escape character>) должен быть типом символьных строк длины 1.

Общие правила

  1. Пусть x обозначает значение, указываемое <спецификацией столбца> (<column specification>), и пусть y обозначает результат <спецификации значения> (<value specification>) <образца> (<pattern>).
  2. Тогда:


    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, который не является ни символом подчеркивания, ни символом знака процента, представляет сам этот символ.




  3. - Начало -  - Назад -  - Вперед -