我的密码查询没有收到以下错误(如下引用):
Invalid input 'p': expected
'n/N' or 's/S'
(line 1, column 116 (offset: 115))
"OPTIONAL MATCH (m:MeasurementSite)-[*2]-(v:Val)
WHERE ID(m) = $meter
AND v.d < $end
AND v.d > $start
WITH v, CALL
apoc.do.when(v IS NOT NULL,
'RETURN abs(toInteger(apoc.temporal.format(duration.inDays($date, $d), \'dd\')))',
'RETURN null',
{d: v.d, date: $date}) AS dist
RETURN v, dist;"
引用的
p
是apoc
中的第二个字符。
CALL
的链接在这里。有人知道这个问题吗?它与(错误的)报价有关吗?
CALL apoc.do.when()
启动查询,但不能在查询中间的某个位置使用它。
正在开发版本 4。
CALL
子句用于调用插件procedures
(与functions
),并且不能在其他子句中间调用。
但是,此外,您的
WHERE
子句无论如何都会过滤掉 v
值,因此您甚至不需要测试 v
是否为 NULL (并且您的 MATCH
不需要是 OPTIONAL
)。
因此,这应该足够好了:
MATCH (m:MeasurementSite)-[*2]-(v:Val)
WHERE ID(m) = $meter
AND v.d < $end
AND v.d > $start
RETURN v, {d: v.d, date: $date});