Neo4j (/) 除以零 ( 0 )

标签 neo4j cypher division divide-by-zero

在 neo4j 中我正在查询

MATCH (n)-[t:x{x:"1a"}]->()
WHERE n.a > 1 OR n.b > 1 AND toFloat(n.a) / (n.a+n.b) * 100 < 90
RETURN DISTINCT n, toFloat(n.a) / (n.a + n.b) * 100
ORDER BY toFloat(n.a) / (n.a + n.b) * 100 DESC
LIMIT 10

但是我得到了/ by zero错误。

由于我声明 n.a 或 n.b 之一应该为 1,如果两者都为零,则应该跳过该行,并且我不应该收到此错误。这看起来像是 Neo4j 中的逻辑问题。我删除AND toFloat(n.a)/(n.a+n.b)*100 < 90时没有问题来自 WHERE 子句。但我希望结果只低于 90。我该如何克服这个问题?

最佳答案

n.an.b 可以为负数吗?我能够通过以下方式重现此内容:

WITH -2 AS na, 2 AS nb
WHERE (na > 1 OR nb > 1) AND toFloat(na)/(na+nb)*100 < 90
RETURN na, nb

我得到:/by zero

也许尝试将 WHERE 子句更改为:

WITH -2 AS na, 2 AS nb
WHERE (na + nb > 0) AND toFloat(na)/(na+nb)*100 < 90
RETURN na, nb

我得到:零行。

关于Neo4j (/) 除以零 ( 0 ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32209065/

相关文章:

neo4j - 如何使用cypher删除neo4j 2.0中的节点或具有NULL属性的关系

neo4j - Neo4j 内存不足错误

java - 使用什么来代替 GraphDatabaseSettings.BoltConnector?

neo4j - 如何将 Neo4j 中的节点标签与 Cypher 进行比较?

python - 如何在Python中使用Round-towards-Infinity实现除法

python - 遍历数字并评估数字是否可以被某些数字整除

spring - 在neo4j中删除节点或关系后的返回值

Neo4j - 生成所有节点之间的关系

Neo4j 密码 : why does this 0-length path not MATCH?

Python:如何启用除以零并返回零值?