注意到PostgreSQL 9.5的以下行为:
将零分割为零 - 按预期工作:
Dictionary
将# select 1 / 0;
ERROR: division by zero
除以零:
NULL
我浏览了文档,但没有找到任何关于此类设计决策原因的参考。红利的结果可能取决于数据 - 可以是某种东西或# select NULL / 0;
?column?
----------
(1 row)
,因此结果 - NULL
或错误 - 将取决于数据。如果已知除数为零,那么在所有情况下抛出错误会不会更安全?
答案 0 :(得分:0)
这更多是关于SQL Standard而不是任何东西:
涉及NULL的算术运算返回NULL。例如, NULL减去NULL会产生NULL,而不是零。
在这种情况下的决定只是遵循SQL ANSI。