Utiliser la clause SET
La clause SET est utilisée pour définir une variable pouvant être réutilisée et modifiée plus tard dans la requête.
La clause SET doit être structurée comme suit :
SET $variable_name = expression
Une fois qu'une variable a été définie, vous pouvez utiliser la même syntaxe pour modifier sa valeur.
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. Dans Talend Data Mapper, elle peut également être un tableau.
La clause SET doit être utilisée après une clause FROM, UNNEST, JOIN ou GROUP BY ou dans un bloc de requête introduit par une clause SELECT. Dans Talend Data Mapper, elle peut également être utilisée après une clause UNION ALL. Si le bloc de requêtes contient une clause WHERE ou HAVING, SET doit être placée avant celle-ci. Par exemple :
FROM customer
SET $address = concatWith(" ", address.street, address.city)
WHERE hasValue(rating)
SELECT {
name,
rating,
address = $address,
SET $level = if (rating > 650) "Premium" else "Standard",
level = $level
}
Note InformationsRemarque : Si une clause SET est utilisée dans une clause SELECT :
- la variable est disponible uniquement dans ce bloc et ne peut être utilisée ailleurs dans la requête.
- Les fonctions d'agrégation ne sont pas supportées.