Cypher查询中CASE语句的THEN子句中的多个语句

时间:2015-12-24 13:20:26

标签: neo4j cypher

我对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

1 个答案:

答案 0 :(得分:2)

THENELSE子句无法调用MATCH(也不会调整操作,例如CREATE)。此外,Cypher查询不能有多个RETURN子句(使用UNION时除外,这在您的情况下是不合适的。)

您应该将查询分成两部分;或者,如果可能,修改您的数据模型,以便单个查询就足够了。