我觉得我很生气
SELECT 30.0/(-2.0)/5.0;
SELECT 30.0/-2.0/5.0;
这里发生了什么?
谁说x/(y)/z
将是(x/y)/z
而不是x(y/z)
? -
答案 0 :(得分:7)
SELECT 30.0/(-2.0)/5.0;
非常明确:
SELECT 30.0/(-2.0)=-15.0
-15.0/5.0=-3.0
第二个选择被解释为:SELECT 30.0/-(2.0/5.0);
2.0/5.0=0.4
30.0/-0.4=-75.0
答案 1 :(得分:3)
您的第二个选择执行如下:
select 30.0/-(2.0/5.0)
看起来减号导致SQL Server反转最后一个分区 - 非常确定这是一个错误!