[xquery-talk] Using Union Operator without Duplicate Records
Florent Georges
lists at fgeorges.org
Sat Dec 29 20:53:54 PST 2007
Alice Wei wrote:
> {for $file in doc("resume_2.xml")//author
> let $author := distinct-values($file[./@type='co-author' ] union
> $file[./@type='Faculty'])
> order by $author ascending
> return <li>{data($author)}</li>
> }
Actually the distinct-values() is in the for body. So it is called
with a sequence of 0 or 1 item each time. Try something like the
following instead (the distinct-values() is used here to give the right
sequence to the for):
for $a in
<projection>
<author type="co-author">Andrew Tawfik</author>
<author type="co-author">Chris Hosler</author>
<author type="co-author">Michelle Scott</author>
<author type="Faculty">Michelle Scott</author>
</projection>
/ distinct-values(.//author[@type = ('co-author', 'Faculty')])
order by $a ascending return
<li> {
data($a)
}
</li>
Result:
<?xml version="1.0" encoding="UTF-8"?>
<li>Andrew Tawfik</li>
<li>Chris Hosler</li>
<li>Michelle Scott</li>
Regards,
--drkm
_____________________________________________________________________________
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail http://mail.yahoo.fr
More information about the talk
mailing list