2012-06-18 12 views
8

de archivo XMLXQuery durante el uso de los valores distintos()

<Cities> 
    <Place> 
    <City n="New Delhi"></City> 
    <City n="Chandigarh"></City> 
    <City n="Mumbai"></City> 
    </Place> 
    <Place> 
    <City n="New Delhi"></City> 
    <City n="Chandigarh"></City> 
    </Place> 
    <Place> 
    <City n="New Delhi"></City> 
    <City n="Mumbai"></City> 
    </Place> 
</Cities> 

estoy usando siguiente XQuery -

for $x in doc("sample")/Cities/Place/City 
    order by $x/@n 
    return distinct-values($x/@n) 

El resultado que estoy esperando es - Chandigarh Mumbai New Delhi

pero conseguir - Chandigarh Chandigarh Mumbai Mumbai New Delhi New Delhi New Delhi

Por favor, dime dónde me estoy equivocando?

Respuesta

8

pls tratan este -

for $x in distinct-values(doc("sample")/Cities/Place/City/@n) 
    order by $x 
    return $x 

He comprobado lo mismo con baseX 7.1 y funcionar sin problemas como se esperaba por ti :)

+0

@ John-Funcionó y exactamente como estaba esperando. Muchas gracias –

+0

@ pratik- bienvenido querido :) – John

4

Usted está ahora llamando al distinct-values en cada uno de los valores por separado. distinct-values devuelve los valores distintos en una secuencia, pero la secuencia ahora solo consta de un elemento. Debe llamar al distinct-values(...) donde ... es la secuencia de nombres de ciudades.

+0

@ Simeon-Tengo lo que quieres decir. Gracias –

0

funcionan Los valores distintos

let $items := (1,2,4,4,5,5,9,9,9,9,3,3,2) 
let $unique-items-by := distinct-values($items) 
return 
    <result> 

     <items> 
     { 
     for $item in $unique-items-by 
     return <item>{$item}</item> 
     } 
     </items> 

    </result> 
0

El distinta -se usa la función de los valores
artículos únicos

let $x:=doc("/db/my.xml") 
let $unique-items := distinct-values($x) 
for $x in $unique-items 

return (
$unique-items 
) 
Cuestiones relacionadas