КаталогИндекс раздела
НазадСодержаниеВперед

Cравнение значений

Cравнение значений сравнивает два атомарных значения. Операторы сравнения значений включают в себя eq, ne, lt, le, gt и ge. Следующая таблица описывает эти операторы.

Таблица 1. Операторы сравнения значений в XQuery
Оператор Назначение
eq Возвращает true, если первое значение равно второму значению.
ne Возвращает true, если первое значение не равно второму значению.
lt Возвращает true, если первое значение меньше второго значения.
le Возвращает true, если первое значение меньше или равно второго значения.
gt Возвращает true, если первое значение больше второго значения.
ge Возвращает true, если первое значение больше или равно второго значения.

Два значения могут сравниваться, если они имеют одинаковый тип или если тип одного операнда является подтипом типа другого операнда. Два операнда числовых типов (типы xs:float, xs:integer, xs:decimal, xs:double и производные от них типы) могут сравниваться. Также могут сравниваться значения xs:string и xs:anyURI.

Специальные значения: Для значений xs:float и xs:double положительный ноль и отрицательный ноль сравниваются как равные. INF равно INF, и -INF равно -INF. NaN не равно самому себе. Положительная бесконечность больше, чем другие не-NaN значения; отрицательна бесконечность меньше, чем другие не-NaN значения. NaN ne NaN дает true, а любое другое сравнение, включающее значение NaN, дает false. Два значения типа xs:QName рассматриваются как равные, если равны их URI пространств имен и их локальные имена (префиксы пространств имен не имеют значения).

Результат сравнения значений может быть булевским значением, пустой последовательностью или ошибкой. Когда вычисляется сравнение значений, каждый операнд атомизируется (преобразуется в атомарное значение) и применяются следующие правила:

Следующие типы могут сравниваться при помощи оператора eq или ne. Термин "Грегорианский" относится к типам xs:gYearMonth, xs:gYear, xs:gMonthDay, xs:gDay и xs:gMonth. Для бинарных операторов, которые принимают два операнда Грегорианского типа, операнды должны иметь одинаковый тип (например, если один операнд имеет тип xs:gDay, другой операнд должен иметь тип xs:gDay). Термин "числовой" относится к типам xs:integer, xs:decimal, xs:float, xs:double, и к любому типу, производному от одного из этих типов. В ходе сравнения, которое включает числовые значения, используется подстановка подтипа и перевод типа для преобразования операндов в первый тип упорядоченного списка (xs:integer, xs:decimal, xs:float, xs:double), в который операнды могут быть преобразованы.

Следующие типы могут сравниваться при помощи операторов gt, lt, ge и le. Термин "числовой" относится к типам xs:integer, xs:decimal, xs:float, xs:double. В ходе сравнения, которое включает числовые значения, используется подстановка подтипа и перевод типа для преобразования операндов в первый тип упорядоченного списка (xs:integer, xs:decimal, xs:float, xs:double), в который операнды могут быть преобразованы.T

Примеры


НазадСодержаниеВперед
КаталогИндекс раздела