Предикат сравнения
Этот предикат предназначен для спецификации сравнения двух строчных значений. Синтаксис предиката следующий:
comparison_predicate ::= row_value_constructor comp_op row_value_constructor comp_op ::= = | <> («не равно»)| < | > | <= («меньше или равно») | >= («больше или равно»)
Строки, являющиеся операндами операции сравнения, должны быть одинаковой степени. Типы данных соответствующих значений строк-операндов должны быть совместимы.
Пусть X и Y обозначают соответствующие элементы строк-операндов, а xv и yv – их значения. Тогда:
- если xv и/или yv являются неопределенными значениями, то значение условия X comp_op Y - unknown;
- в противном случае значением условия X comp_op Y является true или false в соответствии с естественными правилами применения операции сравнения.
При этом:
- Числа сравниваются в соответствии с правилами алгебры.
- Сравнение двух символьных строк производится следующим образом:
- если длина строки X не равна длине строки Y, то для выравнивания длин строк более короткая строка расширяется символами набивки (pad symbol); если для используемого набора символов порядок сортировки явным образом не специфицирован, то в качестве символа набивки используется пробел;
- далее производится лексикографическое сравнение строк в соответствии с предопределенным или явно определенным порядком сортировки символов.
- Сравнение двух битовых строк X и Y основано на сравнении соответствующих бит. Если Xi и Yi – значения i-тых бит X и Y соответственно и если lx и ly обозначает длину в битах X и Y соответственно, то:
- X равно Y тогда и только тогда, когда lx = ly и Xi = Yi для всех i;
- X меньше Y тогда и только тогда, когда (a) lx < ly и Xi = Yi для всех i меньших или равных lx, или (b) Xi = Yi для всех i < n и Xn = 0, а Yn =1 для некоторого n меньшего или равного min (lx, ly).
- Сравнение двух значений типа дата-время производится в соответствии с видом интервала, который получается при вычитании второго значения из первого. Пусть X и Y – сравниваемые значения, а H – наименее значимое поле даты-времени X и Y.
Содержание Назад Вперед