UNWIND用于将任何列表变回单独的行。这些列表可以是传入的参数,先前编辑的 collect 结果或其他列表表达式。注意UNWIND 需要指定一个新的名称

列表操作

unwind [1, 2, 3, NULL] as x
return x, 'val' as y

结果是:

列表去重

with [1, 1, 2, 2] as coll
unwind coll as x
with distinct x
return collect(x) as setOfVals

结果是:

列表运算

# 合并列表为[1,2,3,4]
with [1, 2] as a, [3, 4] as b
unwind (a + b) as x
return x

合并嵌套列表

# 合并嵌套列表
with [[1, 2], [3, 4], 5] as nested
unwind nested as x
unwind x as y
return x, y

结果是: 

合并空列表

# 这是一个用法,只要unwind的是一个[],那么不管一起返回的是什么,都会返回一个0rows。
unwind [] as empty
return empty, 'literal_that_is_not_returned'

结果是: 

检测列表

# 可以被用来检测是不是一个list,null不是列表不会返回值
unwind null as x
return x, 'some_itearl'

# 如果直接unwind一个数字或字符串,也可以返回
unwind 5 as x
return x, '11'
Logo

一站式 AI 云服务平台

更多推荐