SELECT -1 * 100/10
SELECT 100 * -1/10
отличается в результате. Сначала возвращается -10
, второй 0
. Очевидно, что это вызвано заказом.Порядок приоритета умножения и деления
Но я не могу найти информацию о том, что подразделения имеют более высокий вес, чем умножения.
Глядя на http://technet.microsoft.com/en-gb/library/ms190276%28v=sql.105%29.aspx умножения и деления находятся на том же уровне и читать на нем написано
Когда два оператора в выражении имеют один и тот же оператор старшинства уровень, они вычисляются слева направо на основе их позиции в выражении .
Относительно этого второй запрос должен быть оценен следующим образом: 100 * -1 -> result/10
, не так ли?
ну, у вас есть «минус» в вашем запросе, который также является оператором. Попробуйте 'select 100 * (-1)/10 и посмотрите разницу ... –