Operatorrangfolge (Entity SQL)
Wenn in einer Entity SQL-Abfrage mehrere Operatoren vorkommen, bestimmt die Operatorrangfolge die Reihenfolge, in der die einzelnen Operationen durchgeführt werden. Die Ausführungsreihenfolge kann sich entscheidend auf das Abfrageergebnis auswirken.
Operatoren besitzen die in der folgenden Tabelle dargestellte Rangfolge. Ein Operator, der höher in der Rangfolge steht, wird vor einem Operator niedrigeren Ranges ausgewertet.
Rang | Operationstyp | Operator |
---|---|---|
1 |
Primär |
|
2 |
Unär |
|
3 |
Multiplikativ |
|
4 |
Additiv |
|
5 |
Reihenfolge |
|
6 |
Gleichheit |
|
7 |
Bedingtes AND |
|
8 |
Bedingtes OR |
|
Verfügen zwei Operatoren in einem Ausdruck über die gleiche Rangstufe, werden sie von links nach rechts, ausgehend von ihrer Position innerhalb der Abfrage, ausgewertet. x+y-z
wird beispielsweise als (x+y)-z
ausgewertet.
Mit Klammern kann die definierte Rangfolge von Operatoren in einer Abfrage außer Kraft gesetzt werden. Die Operatoren innerhalb der Klammern werden zuerst ausgewertet, bevor das sich ergebende einzelne Ergebnis von den Operatoren außerhalb der Klammern verwendet werden kann. Zum Beispiel wird beix+y*z ``y
mitz
multipliziert und dann x
addiert, bei(x+y)*z
wird jedochx
zuy
addiert und dann das Ergebnis mit z
multipliziert.