如何使用多个 CASE 简化 neo4j 查询



我们在项目中使用以下密码查询(只是相关的部分,在此之前有一堆MATCH和WHERE):

"RETURN entry.id AS id,n" +
...
"       CASE WHEN ljCase1 IS NOT NULL THEN {id: ljCase1.id, guide: false} n" +
"           ELSE CASE WHEN ljCase2 IS NOT NULL THEN {id: ljCase2.id, guide: true}n" +
"              ELSE CASE WHEN ljCase3 IS NOT NULL THEN {id: ljCase3.id, guide: true} ENDn" +
"         ENDn" +
"       END AS learningJourneyn" +
...

它工作正常,但我觉得这并没有像它应该做的那样干净。有没有一种方法可以简化这部分查询?

可以使用COALESCE来避免嵌套的CASE

WITH COALESCE(ljCase1,ljCase2,ljCase3) AS myCase
WITH CASE myCase 
WHEN x THEN ..
WHEN y THEN ..
ELSE ..
END

最新更新