2016-11-14 64 views
0

我試圖從CASE條件返回結果。但它是這個消息拋出錯誤:從Neo4j中的CASE {}返回時的ORDER BY值

Variable `strength` not defined (line 8, column 104 (offset: 243)) 
"RETURN {strength:CASE WHEN p.strength IS NULL THEN r.strength ELSE p.strength*r.strength END} ORDER BY strength DESC LIMIT 3" 

看着錯誤消息我明白,力量沒有確定。

我該怎麼辦?通過這個案例的功能?

回答

1

這不是CASE的問題。問題是ORDER BY子句必須引用RETURN子句中的標識符,但是RETURN子句正在返回沒有標識符的映射。

在本(簡化的片段),在地圖上被賦予標識符res,並且ORDER BY使用該標識符:

RETURN {strength: r.strength * CASE WHEN p.strength IS NULL THEN 1 ELSE p.strength END} AS res 
ORDER BY res.strength DESC 
LIMIT 3;