我对Neo4j很新。是否可以在THEN
查询中的CASE
语句的CYPHER
子句中执行操作?有点像,如果我当前处理的输出是null,那么做其他事情。我想要做的片段如下:
MATCH (order:PurchaseOrder)-[r:HAS_ITEM]->(a:sku) where a.id ='' and id(order) in OrderIDs
with order as commonorders
CASE WHEN commonorders is not NULL THEN
[MATCH (commonorders)-[r:HAS_ITEM]->(a:sku) where a.id <> '888888888'
return a]
ELSE
[ MATCH (order:PurchaseOrder)-[r:HAS_ITEM]->(a:sku) where a.id in [] and id(order) in OrderIDs
WITH a as recommendedSku , count(r) as skuCount
ORDER BY skuCount DESC
LIMIT 5]
END
答案 0 :(得分:2)
THEN
和ELSE
子句无法调用MATCH
(也不会调整操作,例如CREATE
)。此外,Cypher查询不能有多个RETURN子句(使用UNION
时除外,这在您的情况下是不合适的。)
您应该将查询分成两部分;或者,如果可能,修改您的数据模型,以便单个查询就足够了。