| Каталог | Индекс раздела |
| Назад | Содержание | Вперед |
Общие сравнения сравнивает две последовательности любой длины и определяют, удовлетворяет ли заданному сравнению хотя бы один пункт первой последовательности и один пункт второй последовательность. Операции общего сравнения включают в себя include =, !=, <, <=, >, и >=.
Следующая таблица описывает эти операторы.
Таблица 1. Операторы общего сравнение в XQuery
| Оператор Назначение | |
| = | Возвращает true, если некоторые значения в первой последовательности равны некоторым значениям во второй последовательности. |
| != | Возвращает true, если некоторые значения в первой последовательности неравны некоторым значениям во второй последовательности. |
| < | Возвращает true, если некоторые значения в первой последовательности меньше, чем некоторые значения во второй последовательности. |
| <= | Возвращает true, если некоторые значения в первой последовательности меньше или равны некоторым значениям во второй последовательности. |
| > | Возвращает true, если некоторые значения в первой последовательности больше, чем некоторые значения во второй последовательности. |
| >= | Возвращает true, если некоторые значения в первой последовательности больше или равны некоторым значениям во второй последовательности. |
Результатом общего сравнения является либо булевское значение, либо ошибка. Когда общее сравнение вычисляется, каждый операнд атомизируется (преобразуется в последовательность атомарных значений). Первая последовательность сравнивается со второй последовательностью, чтобы определить, удовлетворяет ли заданному сравнению хотя бы один пункт в первой последовательность и хотя бы один пункт во второй последовательности. При сравнении отдельных атомарных значений применяются следующие правила:
После того, как все типы будут преобразованы, как описано выше, атомарные значения сравниваются с использованием одного из операторов сравнения eq, ne, lt, le, gt или ge.
Результат сравнения ? true, если есть пара атомарных значений, одно в первой последовательности-операнде, а второе - во второй последовательности-операнде, для которых сравнение - true.
Примечание: Если происходят ошибки, результат общего сравнение может быть либо булевским значением, либо ошибкой. Например, сравнение (1, 2) = (2, "Hello") может вернуть true, поскольку 2 eq 2 - true, или сравнение может вернуть ошибка, поскольку значение 1 не сравнимо со значением "Hello".
Замечание: Для сравнения двух последовательностей пункт за пунктом используйте функцию XQuery fn:deep-equal.
Примеры
author в $book1 - "Kennedy" как экземпляр типа xs:string или xdt:untypedAtomic:
$book1/author = "Kennedy"
(1, 2) = (2, 3) (2, 3) = (3, 4) (1, 2) = (3, 4)
(1, 2) = (2, 3) (1, 2) != (2, 3)
$a, $b и $c связаны с элементными узлами, которые имеют аннотацию типа xdt:untypedAtomic. Элементные узлы содержат строковые значения "1", "2" и "2.0", соответственно. В этом примере следующее выражение возвращает false, поскольку значения, связанные с $b и $c ("2" и "2.0") сравниваются как строки:
($a, $b) = ($c, 3.0)Однако следующее выражение возвращает true, поскольку значение, которое связано с
$b ("2") и значение 2.0 сравниваются как числа:
($a, $b) = ($c, 2.0)
| Назад | Содержание | Вперед |
| Каталог | Индекс раздела |