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'