La clause
WITH
est utilisée pour définir une variable pouvant être réutilisée ultérieurement dans la requête.
La clause
WITH
doit être structurée comme suit :WITH $variable_name = expression
La variable doit commencer par le caractère $
et ne peut pas être un identifiant hiérarchique. Par exemple, $item.index
n'est pas une variable valide. La variable doit être unique à travers la requête. L'expression utilisée pour spécifier la valeur de la variable peut être une expression simple ou une expression conditionnelle.
La clause
WITH
doit être utilisée au début d'une requête ou d'une sous-requête, avant une clause FROM-WHERE-SELECT
. Par exemple :WITH $limit_date = toDate('2020-05-21')
FROM order AS o
WHERE toDate(o.order_date) >= $limit_date
SELECT {
items = (
WITH $limit_price = 1000
FROM o.items AS i
LET $total_price = i.qty * i.price
WHERE $total_price >= $limit_price
SELECT {
o.order_id,
total_price = $total_price
}
)
}
La clause WITH
est évaluée une fois par requête, à la différence de la clause LET
.