我试图命令从CASE条件返回的结果。但是它抛出了以下错误消息:
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"
查看错误信息,我明白没有识别强度。
如何使用这个case功能进行Order by ?
这不是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;