3.3.19 UNWIND语句
UNWIND语句将一个列表展开为一个行的序列。用UNWIND可以将任何列表转为单独的行。这些列表可以参数的形式传入,如前面collect函数的结果或者其他列表表达式。
UNWIND一个较为常见的用法是创建唯一列表。另外一个用法是从提供给查询的参数列表中创建数据。UNWIND需要给内部值指定新的名字。
3.3.19.1 UNIND列表
将一个常量列表转为名为x的行并返回。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P196_102807.jpg?sign=1739499244-2QMmfFpifPLeVU3XeQrN6p2hePoQqcZf-0-4a314dc2cebfe91fde8263cd8e45bc55)
原列表中的每个值将以单独的行返回。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P196_101916.jpg?sign=1739499244-NGb8IJHpQx8UhyxBVg5jp9pJ5our9koW-0-3a2a71f54fc73ce116a0eb3cf9d82be0)
3.3.19.2 创建唯一列表
使用DISTINCT将一个重复值列表转为一个集合。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P196_102808.jpg?sign=1739499244-xjB4a96u3WCx5kLVJqQXabPN497mEQ3u-0-0b5a34ebae494aa5fec985b4b33631cb)
原列表中的每个值被展开,然后经过DISTINCT之后创建了一个唯一列表。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P196_101919.jpg?sign=1739499244-NHisRsUTGJDDuoyhUM83rRH9DEPlbMtT-0-fa58de659848c1f744f35dd8a7f3f29b)
3.3.19.3 从列表参数创建节点
不使用FOREACH,通过列表参数来创建一系列节点和关系。
参数:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P197_102809.jpg?sign=1739499244-g9Hw81lMbUQ2gaSJXT6bDYTX2GWIaXAP-0-c474d346557aa8dbeea0adfa2680c8c3)
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P197_102810.jpg?sign=1739499244-Ev1bX7BkcQ6x6D0sJ4J3Tny5DmgQHDgf-0-6fddebc987a50fe5f53ef10a6a0c409e)
原列表中的值将被展开,通过MERGE来找到或者创建节点和关系。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P197_101922.jpg?sign=1739499244-1mEtDkQqtMyd9JPUT98fpCMi0ZRub0k4-0-bdad69268f7089f259927066c55662c7)