Кванторные выражения

Кванторные выражения делятся на два типа: квантор существования, при котором определяется истинность условия для любого элемента последовательности, и квантор общности, при котором определяется истинность условия для каждого элемента последовательности.

Синтаксис выражения следующий:

("some" | "every") Variable "in" Expression "satisfies" Expression

Где:

  • Variable – имя переменной.
  • Expression – выражение XQuery, возвращающее последовательность.

Кванторное выражение служит примерно тем же целям, что и ключевые слова SOME и ANY в SQL. Например, следующий запрос возвращает все элементы а, которые больше всех элементов b:

declare @xml xmlset @xml = '<a>10</a>, <a>5</a>, <b>4</b>, <a>3</a>, <b>6</b>'select @xml::query(' for $a in /a where every $b in /b satisfies xs:integer($b) < xs:integer($a) return $a')

Результат:

<a>10</a>

Для большей наглядности перепишем предыдущий пример на SQL:

--создание таблицыcreate table test(a int, b int) --наполнение ее даннымиinsert into test values(1, 2)insert into test values(1, 3)insert into test values(4, 1) --запрос, возвращающий все значения поля а, которое больше--любого значения поля bselect a from test4 where a > any (select b from test4)

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: