概述
函数ifnull()
返回两个值中左起第一个非null的值;如果所有的值都是null,则返回null。
给定的两个值的数据类型不同时会触发数据类型转换,使最终返回的数据流所有值的数据类型统一。
参数:ifnull(<any_1>, <any_2>)
<any_1>
和<any_2>
:任意值(所有类型)
返回值:
- 找到的结果
一般用法
示例图集:
![](https://img.ultipa.cn/draw/draw_f8859ab69627473fa7374cb5d6806aea.jpg?v='')
在一个空图集中,依次运行以下各行语句创建示例图集:
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}])
本例查找每个学生最后一次重考的成绩。已知每个学生有三次考试机会,只要一次通过则不再考,未重考的返回null:
find().nodes() as n
return table(n.name, ifnull(n.try3, n.try2))
| n.name | ifnull(n.try3, n.try2) |
|--------|------------------------|
| Jason | null |
| Alice | 79 |
| Lina | null |
| Eric | 61 |
| Pepe | null |