2014-11-11 3 views
0

현재이 쿼리가 있는데 부울 값 TRUE 만 반환합니다.XQuery에서 일반 비교 값을 반환하는 방법?

let $expression1 := (0, 11, 22, 34, 36, 57) 
let $expression2 := (16, 17, 57, 18) 

for $item in ($sequence1 = $sequence2) 
return $item 

이 쿼리는 현재 부울 TRUE를 반환합니다. 첫 번째 표현식의 값과 두 번째 표현식의 값을 대신하여 두 값의 시퀀스를 반환 할 수 있습니까?

도움을 주시면 감사하겠습니다. 감사합니다. .

+0

변수 $ sequence1 및 $ sequence2는 정의되지 않습니다. 중첩 된 시퀀스 ((0,11,22,34,36,57), (16,17,57,18))를 기대하는 것 같습니다. XQuery는 중첩 시퀀스를 일반 시퀀스로 평평하게하므로 중첩 시퀀스 개념이 없습니다. XQuery에서 중첩 된 데이터 구조에 XML을 사용해야합니다. 이것이 당신이 기대하는 것이라면 나는 대답을 줄 수있다. – user152468

답변

2

($sequence1 = $sequence2)의 값이 "$sequence1의 값이 $sequence2에 있습니까?"로 평가되므로 부울 결과가 표시됩니다. 이 값은 for $item in true() return $item으로 평가되며 이는 단일 부울을 반환합니다.

당신이 모두 시퀀스에있는 경우에만 값을 반환 할 경우

return ($sequence1, $sequence2) 

당신이 중복없이 모두 시퀀스를 반환 할 경우

return $sequence1[. = $sequence2] 

것은 당신이 함께 두 시퀀스를 반환하려면를 :

return distinct-values(($sequence1, $sequence2))