Hola a todos, hoy os voy a explicar como podemos ordenar en XQuery.
En XQuery, podemos ordenar los datos de nuestra consulta con order by.
Veamos un pequeño ejemplo con nuestro xml de bailes:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="BDbaile.xsd"> |
Si queremos ordenar los bailes por nombre, lo haríamos así:
|
1 2 3 |
for $baile in doc("bailes.xml")//baile order by $baile/nombre return $baile |
Este es el resultado:

Por defecto, se ordena de forma ascendente. si queremos ordenar de forma descendente:
|
1 2 3 |
for $baile in doc("bailes.xml")//baile order by $baile/nombre descending return $baile |
Este es el resultado:

De todas formas, si ponemos ascending ordenaría de forma ascendente.
También podemos ordenar por mas de un campo, en caso de empate, se ordenará por el segundo campo.
|
1 2 3 |
for $baile in doc("bailes.xml")//baile order by $baile/plazas, $baile/nombre return $baile |
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta