XQuery中的不平等

时间:2014-04-09 17:55:19

标签: xquery xquery-sql

我正在尝试列出拥有所有A的学生的ID。这是我的XQuery:

for $s1 in doc("Unv.xml")//Enrollment[Grade = 'A']/StudentInfo/@oID
let $s2 := doc("Unv.xml")//Enrollment[Grade != 'A']/StudentInfo/@oID
where every $id in $s1
satisfies ($id != $s2)
return <StraightA> { $s1 } </StraightA>;

以下是我从以下网站提取数据的注册部分的片段:

<Enrollment EnrollmentID="Enrollment217">
    <OfferingInfo oType="OfferingType" oID="Offering009"/>
    <StudentInfo oType="StudentType" oID="s895255243"/>
    <Grade>B</Grade>
</Enrollment>

但是,这只给了我一份至少有一个A.思想的学生名单?

2 个答案:

答案 0 :(得分:0)

在XQuery中=!=是序列比较运算符;他们对一系列价值观中的一场比赛感到满意。 eqne是值比较运算符,它们的工作方式与您期望的一样。

答案 1 :(得分:0)

$ s1是至少有一个A的学生的ID列表。 $ s2是至少有一个非A的学生的ID列表。

functx:value-except((1,2,3),(3,4,5))
(1, 2)

  distinct-values($arg1[not(.=$arg2)])