[xquery-talk] distinct-values in Where Clauses

Florent Georges lists at fgeorges.org
Thu Jan 17 17:04:55 PST 2008


"Wei, Alice J." wrote:

  Hi

> <text>{
> for $find in doc("resume.xml")//div,
> $note in $find/note,
> $head in $find/head,
> $desc in $find/p
> where
> distinct-values((contains($desc,$text)) or (contains($note,$text)) or
> (contains($head,$text)))
> return
> <div>
> <head>{data($head)}</head>
> <p>{data($desc)}</p>
> <note>{data($note)}</note>
> </div>
> }
> </text>

> The query itself is functional, but the problem is that even though
> my distinct-values function has been set, there are still duplicates.

  The distinct-values is evaluated within the where clause,
so for each div independently.  It is not clear to me what
the distinct-values should be about.  If it is on the div
itself, you can use something like that (but I doubt this
would be on the div itself):

    <text> {
      doc("resume.xml")/distinct-values(
        //div[
            contains(note, $text)
            or contains(head, $text)
            or contains(p, $text)
          ]
      )/
      <div>
         <head>{ data($head) }</head>
         <p>{ data($desc) }</p>
         <note>{ data($note) }</note>
      </div>
    }
    </text>

  If you told us what you want too achieve (for instance
with a simple example of what you mean is duplicate), we
would help you better.

  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