Clásula let
La cláusula let
permite asignar un valor a una variable, la cual se puede utilizar posteriormente. Su uso permite que las consultas sean más legibles y fáciles de mantener.
La sintaxis de la cláusula let
es la siguiente:
let $variable := expression
donde:
$variable
es el nombre de la variable que se va a utilizar.expression
es la expresión que se va a evaluar para asignarle un valor a la variable.
Una característica a tener en cuenta es que las variables en XQuery son inmutables, es decir, una vez definidas no se pueden modificar. Es decir, a pesar de denominarse variables, su comportamiento es idéntico al de las constantes de los lenguajes de programación.
Consideremos la siguiente consulta:
let $a := 5
let $b := 10
return $a + $b
En este ejemplo, se utiliza la cláusula let
para asignar los valores 5
y 10
a las variables $a
y $b
, respectivamente. Luego, se utiliza la expresión return $a + $b
para devolver la suma de ambas variables.
Funciones de agregación
La cláusula let
junto con una expresión XPath adecuada permiten obtener un único valor utilizando las funciones de agregación (recuento, suma, media, etc.).
Consideremos, ahora, la siguiente consulta:
let $nombres := /empleados/empleado[edad>=18]/nombre
return count($nombres)
En este último ejemplo, se utiliza:
- La cláusula
let
para asignar los nombres de los empleados de la secuencia de nodosempleados
a la variable$nombres
. - La clásula
return
junto con la funcióncount()
para obtener la cantidad de nombres.
De forma alternativa, se puede realizar la siguiente consulta:
let $nombres := (
for $e in /empleados/empleado
where $e/edad >= 18
return $e/nombre
)
return count($nombres)
El resultado de la consulta sigue siendo el mismo.