Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 9075-93 Информационная технология (ИТ). Язык баз данных SQL с расширением целостности

     5.14 <предикат подобия>


Функция

Задает сравнение с шаблоном.

Формат

<предикат подобия> : : =

<спецификация столбца> [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 )".