我正在尝试将从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"
查看错误消息,我了解到未确定强度。
如何按照此案例功能进行订购?
答案 0 :(得分: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;