Oracle中with的用法相似 ,把with后面结果集当成一个查询结果、在这个结果基础上再做where条件的筛选

比如下面这个语句:查询所有电影集、每个电影至少有8个以上的演员参演。

with o,count(r) as count_r,以这个为结果集、然后在此基础上筛选出count_r大于8的

MATCH (n:Person)-[r:ACTED_IN]->(o:Movie) with o,count(r) as count_r where count_r > 8 RETURN o

查询结果如下

查询所有电影集、每个电影至少有8个以上的演员参演。 把 with 后面结果集当成一个查询结果、在这个结果基础上再做where条件的筛选 语句:MATCH (n:Person)-[r:ACTED_IN]->(o:Movie) with o,count® as count_r where count_r > 8 RETURN o https://blog.csdn.... 语句用于控制查询流程,将之前的查询结果传递给后续的操作。首先,它匹配参演电影的人节点,并传递人节点和电影数量给第一个。语句将匹配的结果传递给后续的操作,这里是返回每个人节点的姓名属性。,然后根据条件过滤,最终返回满足条件的人节点的姓名。传递给后续的操作,最终返回人节点的姓名和电影数量。语句将一个字符串列表传递给后续的操作,然后使用。展开列表,逐个创建具有姓名属性的人节点。用于将之前的查询结果传递给后续的查询操作。这个示例匹配参演电影的人节点,然后使用。将每个人节点和他们参演的电影数量。 WITH 用于向后面的语句传递指定结果,并可以改变结果集 实体的形式和数量。注意, WITH 会影响查询结果集里的变量, WITH 语句外的变量不会传递到后续查询 。 对结果进行筛选 # 聚合函数进行筛选, 这句话表达的是David连接过去的节点,它向外连接关系大于1的那个节点 match(David{name: 'David'}) --(otherPerson)-->() with otherPerson, count(*) as cnt where cnt > 1 return other create (n12:NewPaper{newPaperId:484029658,newPaperName:"上册",active:1,subjectId:5,versionId:560,gradeId:4}) create (n13:NewPaper{newPaperId:484029749, 对于MATCH和OPTTNAL MATCH, WHERE为模式增加约束, 它不能看作是匹配完成后的结果过滤。这个查询会返回 Tom Hanks 在 2000 年之后参演过的电影。这个查询会返回在 2000 年到 2010 年之间发布的电影的标题。这个查询会返回姓名 包含 "smith"(不区分大小写)的所有人。这个查询会匹配年龄大于 25 岁的所有人,并返回他们的姓名。这个查询会返回姓名 包含 "John" 的所有人。这个查询会返回那些有年龄属性的人的姓名。这个查询会返回年龄属性为空的人的姓名。 应用场景:需要跨进程或远程传输 VO:value object 值对象 / view object 表现层对象 1 .主要对应页面显示(web页面/swt、swing界面)的数据对象。 2 .可以和表对应,也可以不,这根据业务的需要。 BO:business WITH 语句将分段的查询部分连接在一起,查询结果从一部分以管道形式传递给另外一部分作为开始点。 使用 WITH 可以在将结果传递到后续查询之前对结果进行操作。操作可以是改变结果的形式或者数量。 WITH 的一个常见 用法 就是限制传递给其他MATCH语句的结果数。通过结合ORDER BY和LIMIT,可获取排在前面的X个结果。 1.15.1 过滤聚合函数结果 聚合的结...