Приоритет операторов (Entity SQL)
Когда запрос Entity SQL имеет несколько операторов, приоритет оператора определяет последовательность выполнения операций. Порядок выполнения может существенно повлиять на результат выполнения запроса.
Уровни приоритета операторов показаны в следующей таблице. Оператор с более высоким уровнем выполняется раньше оператора с более низким уровнем.
Уровень | Тип операции | Оператор |
---|---|---|
1 | Основной | . , [] () |
2 | Унарный | ! not |
3 | Мультипликативные | * / % |
4 | Аддитивный | + - |
5 | Заказ | < > <= >= |
6 | Equality | = != <> |
7 | Условное И | and && |
8 | Условное ИЛИ | or || |
Если два оператора в выражении имеют один и тот же уровень приоритета, они выполняются в порядке слева направо по мере их появления в выражении. Например, выражение x+y-z
вычисляется как (x+y)-z
.
Чтобы переопределить порядок вычисления операторов в выражении, следует использовать скобки. Вначале все выражение внутри скобок вычисляется до получения одного значения, которое затем может быть использовано любым оператором за пределами скобок. Например, x+y*z
умножается y
z
на, а затем добавляется x
, но (x+y)*z
добавляется x
к y
и затем умножает результат на z
.