Freigeben über


Operatorrangfolge (Entity SQL)

Wenn eine Entity SQL-Abfrage über mehrere Operatoren verfügt, bestimmt die Operatorrangfolge die Reihenfolge, in der die Vorgänge ausgeführt werden. Die Reihenfolge der Ausführung kann sich erheblich auf das Abfrageergebnis auswirken.

Operatoren besitzen die in der folgenden Tabelle dargestellte Rangfolge. Ein Operator mit einer höheren Ebene wird vor einem Operator mit einer niedrigeren Ebene ausgewertet.

Niveau Vorgangsart Bediener
1 Primär . , [] ()
2 Unär ! not
3 Multiplikativ * / %
4 Additiv + -
5 Bestellung < > <= >=
6 Gleichheit = != <>
7 Bedingtes AND and &&
8 Bedingtes OR or &#124;&#124;

Wenn zwei Operatoren in einem Ausdruck dieselbe Operatorrangfolgeebene aufweisen, werden sie basierend auf ihrer Position in der Abfrage von links nach rechts ausgewertet. Wird z. B x+y-z . als (x+y)-zausgewertet.

Sie können Klammern verwenden, um die definierte Rangfolge der Operatoren in einer Abfrage außer Kraft zu setzen. Alles innerhalb von Klammern wird zuerst ausgewertet, um ein einzelnes Ergebnis zu erzielen, bevor dieses Ergebnis von jedem Operator außerhalb der Klammern verwendet werden kann. Multipliziert z. Bx+y*z. mit z und addiert xdann , fügt x das Ergebnis jedoch (x+y)*z hinzu y und multipliziert es dann mit z.y

Siehe auch