答案 0 :(得分:2)
80 / 9
产生8
。由于两个操作数都是整数,因此结果也是如此。 /
和*
具有相同的优先级,因此该表达式是从左到右求值的:
80 / 9 * 9
-> 8 * 9
-> 72
答案 1 :(得分:2)
正如Juergen所说,它们具有相同的优先级,并且使用integer division可以做到:
80/9 = 8 (as the remainder/decimal part is removed)
如果将整数除数除以整数除数,则结果是整数,其结果的任何小数部分都会被截断。
然后:
8 * 9 = 72
答案 2 :(得分:2)
数学运算符在SQL中的优先级与数学中的相同。
由于隐式转换,您的查询结果为72:
80 / 9
由于左值是一个整数,因此将得到8,因此,尽管您希望得到的结果是double,但优化器会将值隐式转换为整数。
您可以使用左双精度值“覆盖”隐式转换:
80.0 / 9
答案 3 :(得分:1)
由于*
和/
具有the same precedence(2),因此从左到右一一处理。
答案 4 :(得分:0)
当表达式中的两个运算符具有相同的运算符优先级时,将根据它们在表达式中的位置从左到右进行评估。这里*和/具有相同的优先级。