![精通Neo4j](https://wfqqreader-1252317822.image.myqcloud.com/cover/113/47216113/b_47216113.jpg)
上QQ阅读APP看书,第一时间看更新
3.3.18 WITH语句
WITH语句将分段的查询部分连接在一起,查询结果从一部分以管道形式传递给另外一部分作为开始点。
使用WITH可以在将结果传递到后续查询之前对结果进行操作。操作可以是改变结果的形式或者数量。WITH的一个常见用法就是限制传递给其他MATCH语句的结果数。通过结合ORDER BY和LIMIT,可获取排在前面的X个结果,从而实现分页效果。
另一个用法就是在聚合值上过滤。WITH用于在WHERE断言中引入聚合。这些聚合表达式创建了新的结果绑定字段。WITH也能像RETURN一样对结果使用别名作为绑定名。WITH还可以用于将图的读语句和更新语句分开,查询中的每一部分要么只是读取,要么都是写入。当写部分的语句是基于读语句的结果时,这两者之间的转换必须使用WITH。
WITH图例如图3-21所示。
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P194_91928.jpg?sign=1738953680-kwX2WBvCZdkTnRrnw07qaYpoPmDU5Zwx-0-12b42d1b85adc341cb53a60523a9106c)
图3-21 WITH图例
3.3.18.1 过滤聚合函数结果
聚合的结果必须通过WITH语句传递才能进行过滤。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P195_102804.jpg?sign=1738953680-Zw8xi892Ttu24KPen9nT7pjVAxb4e6Hu-0-0c60c9d09f65e0522a995956fbd1ea43)
查询返回与David相连的人,且该人至少有一个外向关系。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P195_101908.jpg?sign=1738953680-tZxlpzcs8c9M8tiK4QYwKdYj8SLJOEBG-0-173ee133bf8e4c627cffb51a7798d163)
3.3.18.2 在collect前对结果排序
可以在将结果传递给collect函数之前对结果进行排序,这样就可以返回排过序的列表。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P195_102805.jpg?sign=1738953680-yo88zgFFUpEQM7MlXiRFOev1OO6AhwmP-0-9f7962ca5891db426a2af8910e7afcd7)
列表中的人名以倒序排列,并且数量限制为3。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P195_102805a.jpg?sign=1738953680-vjyM36gF7wffH6XHdCJKoAhrHfXCjxQa-0-03dff41893df5561e5fd73bdcb7336e4)
3.3.18.3 限制路径搜索的分支
可以限制匹配路径的数量,然后以这些路径为基础再做任何类似的有限制条件的搜索。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P195_102806.jpg?sign=1738953680-GrRzsPX2WI0YC3Z7CuSwMZMCbctj4fSf-0-c8009f8c1d62cadc6c2264389f21532c)
先以Anders开始找到与之相连的所有节点,然后按名字倒序排列得到排第一个的节点,然后再以该节点为基础,找到与之相连的所有节点,最后返回它们的名字。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P196_101913.jpg?sign=1738953680-1IojkKmOThFxZMmD2v7gwuNj3SBLkg8X-0-eb32c47a971537ddbded6a413d12565d)