Saltar al contenido principal

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.
Valores inmutables

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 nodos empleados a la variable $nombres.
  • La clásula return junto con la función count() 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.