La fonction coalesce()
renvoie la première valeur non null
parmi plusieurs valeurs (≥2), ou renvoie null
si toutes les valeurs sont null
.
Lorsque plusieurs valeurs sont de structures de données différentes, une conversion de données peut être déclenchée pour garantir un type de données cohérent dans le flux de données final.
Occasions où une valeur
null
est produite : propriétés non fournies lors de l'insertion de données, propriétés créées après l'insertion des données, appel d'une propriété inexistante.
Arguments :
- Toute valeur
<any>
- ...
Renvoie :
- Résultat
<any>
Exemple de graph : (à utiliser pour les exemples suivants)
Exécutez les UQLs ci-dessous un par un dans un graphset vide pour créer des données de graph :create().node_property(@default, "name").node_property(@default, "try1", int32).node_property(@default, "try2", int32).node_property(@default, "try3", int32)
insert().into(@default).nodes([{name:"Jason", try1:84}, {name:"Alice", try1:55, try2:79}, {name:"Lina"}, {name:"Eric", try1:39, try2:46, try3:61}, {name:"Pepe", try1:89}])
Utilisation Courante
Exemple : Retourner le score du dernier test que chaque étudiant passe, sachant que chaque étudiant a trois chances, et qu'un nouveau test n'est autorisé que si le précédent a échoué. Retourner -1 si un étudiant ne tente aucun essai.
find().nodes() as n
return table(n.name, coalesce(n.try3, n.try2, n.try1, -1))
| n.name | coalesce(n.try3, n.try2, n.try1, -1) |
|--------|--------------------------------------|
| Jason | 84 |
| Alice | 79 |
| Lina | -1 |
| Eric | 61 |
| Pepe | 89 |