合并函数 coalesce() 可以将多个数据列合并为一列,合并时将每行数据中左起第一个非空的值保留,将其余值舍弃;如果某行中所有值均为空且没有指定默认常量,则该行合并后的值为空。
多个数据列的数据类型不同时可能会触发数据转换使最终合并的结果保持相同的数据类型。
Arguments:
- 任意值 <any>
- ...
- 默认常量 <any>,不填则默认为空
Returns:
- 新数据 <any>
当多个数据列非同源时,在 WITH 中使用该函数时会先将非同源列做笛卡尔乘积后再计算,在 RETURN 中使用该函数时会直接将各列截为等长后再计算。
一般用法
示例:查找两个产品 P001、P002 和两个银行卡 CA001、CA002,返回产品名 name 或卡号 _id(已知银行卡没有 name 属性)
find().nodes({_id in ["P001", "P002", "CA001", "CA002"]}) as n
return coalesce(n.name, n._id)
说明:由于银行卡没有 name 属性,调用时会返回 null
,故针对银行卡返回其 _id
。
示例:查找全部节点,返回手机号、邮箱地址或设备MAC地址,其余的返回 0。已知在所有点属性中,只有 @phone.number,@email.address,@device.MacAddress
find().nodes() as n
return coalesce(n.number, n.address, n.MacAddress, 0)