概述
函数coalesce()
返回多个值中左起第一个非null的值;如果所有的值都是null,则返回null。
给定的多个值的数据类型不同时会触发数据类型转换,使最终返回的数据流所有值的数据类型统一。
参数:coalesce(<any_1>, <any_2>,...)
<any_N>
:任意值(所有类型)
返回值:
- 找到的结果
一般用法
示例图集:
在一个空图集中,依次运行以下各行语句创建示例图集:
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}])
本例查找每个学生最后一次考试的成绩。已知每个学生有三次考试机会,只要一次通过则不再考,未参加考试的返回-1:
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 |