2012-12-21 144 views
-6

我在SQL查詢中使用了加法'+',乘法'*'和除法'/'運算符。 它的執行順序是什麼?SQL查詢中除法,乘法,減法的執行順序

查詢

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

看起來像一個考試問題。 [T-SQL運算符優先級...](http://msdn.microsoft.com/zh-cn/library/ms190276.aspx) –

回答

3

與任何其他...基於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) 
+2

除非無法正常工作:'select 30/3/5;選擇30/3/-5;選擇30/-3/5' – HABO

0

請看下面鏈接

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

它似乎很明顯,如果兩個運營商都相同的優先順序,然後在左邊的表達將獲得更多的優先權。此外,括號內的表達式將獲得最高優先權

在您的情況下(D -E)將首先被評估。那麼它將成爲A *(B)的左邊。然後它將是C * 100.然後它將被劃分並且最後將被減去。

讓我知道我是否正確