【发布时间】:2020-01-19 22:44:01
【问题描述】:
我运行了以下查询以使用多个 apoc.do.when,但似乎只有我的第一个 apoc.do.when 正在执行
load csv from "file:///D:leads.csv"
as row
FIELDTERMINATOR ','
WITH row[0] as id,
row[1] as fname,
row[2] as lname,
row[4] as email1,
row[5] as email2,
row[6] as phone1,
row[7] as phone2,
row[8] as phone3,
split(row[11]," ") as birthDay
LIMIT 5
MERGE (l:Lead {id:id})
with l as leadRef,email1,email2,phone1,phone2,phone3,fname,lname,id
CALL apoc.do.when(email1 is not null,'MERGE (e1:Email {value:email}) MERGE (l)-[r:Has_Email]->
(e1)','',{email:email1,l:leadRef}) YIELD value WITH value AS
ignored,leadRef,email1,email2,phone1,phone2,phone3,fname,lname,id
CALL apoc.do.when(phone1 is not null,'MERGE (p1:Phone {value:phone}) MERGE (l)-[r:Has_Phone]->
(p1)','',{phone:phone1,l:leadRef}) YIELD value WITH value AS
ignored2,leadRef,email1,email2,phone1,phone2,phone3,fname,lname,id
CALL apoc.do.when(phone2 is not null,'MERGE (p2:Phone {value:phone}) MERGE (l)-[r:Has_Phone]->
(p2)','',{phone:phone2,l:leadRef}) YIELD value WITH value AS
ignored3,leadRef,email1,email2,phone1,phone2,phone3,fname,lname,id
return true
有没有办法根据多个条件执行多个查询?第一条语句没有中断
【问题讨论】:
-
你可以试试 apoc.do.case 。它的条件和查询列表
-
如果
phone1/phone2分别为空,您的第二次/第三次apoc.do.when调用不应执行任何操作。
标签: graph neo4j cypher neo4j-apoc