【问题标题】:Order of execution for divide,multiply,subtract in sql query [closed]sql查询中除,乘,减的执行顺序[关闭]
【发布时间】:2012-12-21 21:14:01
【问题描述】:

我在我的 SQL 查询中使用了 Addition '+' 、 Multiplication '*' 和 Divide '/' 运算符。 它的执行顺序是什么?

查询

Select A * (B) - C * 100 / (D-E) From Table

【问题讨论】:

标签: sql sql-server


【解决方案1】:

与任何其他...相同...基于 PEMDAS

Parenthesis

Exponents

Multiply 
  and 
Divide at same level, left to right

Add 
  and 
Subtract at same level left to right.




(D-E) is done first
(B) is done next, but is left as-is as no other direct relation 
A * B
C * 100
then 
(result of C * 100) / (D - E result)
(A * B result ) - ( entire C * 100 / (D-E) result)

【讨论】:

  • 除非它不能正常工作:select 30 / 3 / 5; select 30 / 3 / -5; select 30 / -3 / 5
【解决方案2】:

请看下面的链接

http://msdn.microsoft.com/en-us/library/ms190276.aspx

很明显,如果两个运算符具有相同的优先级,那么左边的表达式将获得更高的优先级。括号内的表达式也将获得最高的优先级

在您的情况下,将首先评估 (D -E)。然后它将是 A * (B) 作为其在左侧。然后是C * 100。然后是除法,最后是减法。

让我知道我是否正确

【讨论】:

    猜你喜欢
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多