来自类似T-SQL查询的不同结果

时间:2020-02-07 08:01:57

标签: sql-server tsql

两个t-SQL(MS SQL 2017)查询:

Select 125. /  -124/ 125.
Select 125. / (-124)/125.

仅在括号上有所不同。

但是,结果不相等:

-126.0080645161
-0.0080645120

为什么结果不同?

2 个答案:

答案 0 :(得分:4)

第二种情况下括号的添加改变了操作顺序。为避免歧义,应明确指定括号。对于第一个结果,您应该使用:

SELECT 125. / (-124 / 125.)

第二种情况:

SELECT (125. / -124) / 125.

答案 1 :(得分:3)

解释是,在T-SQL中,* (Multiplication)/ (Division)运算符的precedence- (Negative)运算符高。因此,准确评估的是:

体验1:125. / - (124 / 125)等于:-126.0080645161

体验2:125. / (-124) / 125等于:-0.0080645120

请注意,正确的结果是:-0.0080645120

相关问题