【发布时间】:2018-10-02 02:47:13
【问题描述】:
我不确定之前是否已在 S.O 中回答过这个问题,但我在谷歌上找不到任何答案来解释各种数据库中的这种行为。所以我想我会在这里向专家澄清这一点。
当我在 Oracle、Postgresql、mysql 和 sql-server 中运行此查询时,我得到了不同的结果。
Oracle 11g
select count(1/0) from dual;
ORA-01476: 除数为零
http://sqlfiddle.com/#!4/e0ee9e/751
SQL-Server 2017
select count(1/0) ;
1
但是select 1/0 给出错误。
遇到除以零错误
http://sqlfiddle.com/#!18/2be41/2
http://sqlfiddle.com/#!18/185a6/7
PostgreSQL 9.6
错误:除以零
http://sqlfiddle.com/#!17/340e0/80
Mysql 5.6
select count(1/0) ;
0
http://sqlfiddle.com/#!9/2be41/10
为什么在实现上有这些差异?
【问题讨论】:
-
您好 Kaushik,很高兴看到您提出问题。感谢您提出罕见但很好的问题。
标签: mysql sql sql-server oracle postgresql