我有2个节点员工,承包商。我需要先在“员工”中获取名称的ID,如果找不到,然后在“承包商”中,但仍找不到默认名称的ID。到目前为止,我有以下内容,但是我没有正确的IF systax。
WITH row WHERE row.CREATED_BY is not null and row.CREATED_BY <> 'None'
CALL apoc.when(row.CREATED_BY_NTID IS NOT NULL,
"MATCH (p:Employee {name: row.CREATED_BY}) WHERE p.account ENDS WITH row.CREATED_BY_NTID return p",
"MATCH (p:Employee {name: row.CREATED_BY}) return p",
{row:row}) yield value
With row, value.p as p
IF value.p IS null
CALL apoc.when(row.CREATED_BY_NTID IS NOT NULL,
"MATCH (p:Contractor {name: row.CREATED_BY}) WHERE p.account ENDS WITH row.CREATED_BY_NTID return p",
"MATCH (p:Contractor {name: row.CREATED_BY}) return p",
{row:row}) yield value
With row, value.p as p
IF value.p IS null
match (p:Employee) where p.name starts with 'XXXXXXX' return p
我能够在apoc.when中添加多个条件(由于某些原因,当我发布它不起作用时,也许我遇到了其他问题)。
WITH row
CALL apoc.when(row.CREATED_BY_NTID IS NOT NULL,
"MATCH (p:Employee {name: row.CREATED_BY}) WHERE p.account ENDS WITH row.CREATED_BY_NTID return p",
"MATCH (p:Employee {name: row.CREATED_BY}) return p",
{row:row}) yield value
With row, value.p as p
CALL apoc.when(row.CREATED_BY_NTID IS NOT NULL AND p is NULL,
"MATCH (p:Contractor {name: row.CREATED_BY}) WHERE p.account ENDS WITH row.CREATED_BY_NTID return p",
"MATCH (p:Contractor {name: row.CREATED_BY}) return p",
{row:row}) yield value
With row, value.p as p
CALL apoc.when(p is NULL,
"match (p:Employee) where p.name starts with 'XXXXXXX' return p", "", {row:row}) yield value
....
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句