XQuery: сравнивает одно значение с несколькими значениями, например, командой SQL «in» - PullRequest
2 голосов
/ 23 сентября 2010

Мне нужно сравнить одно значение с несколькими другими значениями (запрос приводит к более чем одному элементу), поэтому, если значение включено в некоторые другие значения. В SQL для этого есть оператор IN, но как насчет XQuery? Спасибо за любую подсказку: -)

Ответы [ 2 ]

5 голосов
/ 23 сентября 2010

Оператор XQuery = ведет себя точно так, как вы описали:

3 = (1,2,3,4,5)

- это true.

Оператор eq - это версия для сравнения отдельных значений.

Однако, если вы ищете, находится ли узел $node в определенном списке узлов $sequence, тогда вы хотите

some $x in $sequence satisfies $x is $node
1 голос
/ 23 сентября 2010
let $values := ('1', '2', '3')
for $row in $table
where $row/value = $values
return $row

Или вы могли бы сделать это, если указали:

for $row in $table
where $row/value = ('1', '2', '3')
return $row
...