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:
$variablees el nombre de la variable que se va a utilizar.expressiones 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
letpara asignar los nombres de los empleados de la secuencia de nodosempleadosa la variable$nombres. - La clásula
returnjunto 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.