在 CASE 中使用条件语句不能正确评估表达式? neo4j
using conditional in CASE does not evaluate expressions properly ? neo4j
我想 trim 字符串服务器端。
考虑一下:属性 是字符串,如果长度超过 10 个字符,我想 trim 它。
考虑这个查询:
Match (r)
with r, case r.what
when size(r.what) > 10 then substring(r.what, 0, 10)
else r.what end as w
return {what : w, len : size(w)} as props
我希望 size(r.what) > 10
计算结果为真,并且 substring(r.what, 0, 10)
赋值给变量 w
,w
总是等于原始字符串 'r.what
',不管长短。
len
报告正确。
我做错了什么?
我正在使用 neo4j 4.4
去掉CASE
后面的r.what
。您的查询应如下所示:
MATCH (r)
WITH r,
CASE
WHEN size(r.what) > 10 THEN substring(r.what, 0, 10)
else r.what
END AS w
RETURN {what : w, len : size(w)} AS props
当你在 CASE
之后添加一个表达式时(在你的问题中,r.what
),它的值将与你放在每个 WHEN
.[=18 上的任何值进行比较=]
来源:
我想 trim 字符串服务器端。
考虑一下:属性 是字符串,如果长度超过 10 个字符,我想 trim 它。 考虑这个查询:
Match (r)
with r, case r.what
when size(r.what) > 10 then substring(r.what, 0, 10)
else r.what end as w
return {what : w, len : size(w)} as props
我希望 size(r.what) > 10
计算结果为真,并且 substring(r.what, 0, 10)
赋值给变量 w
,w
总是等于原始字符串 'r.what
',不管长短。
len
报告正确。
我做错了什么? 我正在使用 neo4j 4.4
去掉CASE
后面的r.what
。您的查询应如下所示:
MATCH (r)
WITH r,
CASE
WHEN size(r.what) > 10 THEN substring(r.what, 0, 10)
else r.what
END AS w
RETURN {what : w, len : size(w)} AS props
当你在 CASE
之后添加一个表达式时(在你的问题中,r.what
),它的值将与你放在每个 WHEN
.[=18 上的任何值进行比较=]
来源: