Precedência do operador (Entity SQL)
Quando uma consulta Entity SQL tem vários operadores, a precedência do operador determina a sequência na qual as operações são executadas. A ordem de execução pode afetar significativamente o resultado da consulta.
Os operadores têm os níveis de precedência mostrados na tabela a seguir. Um operador com um nível mais alto é avaliado antes de um operador com um nível mais baixo.
Level | Tipo de operação | Operador |
---|---|---|
1 | Primário | . , [] () |
2 | Unário | ! not |
3 | Multiplicativo | * / % |
4 | Aditivo | + - |
5 | Ordenação | < > <= >= |
6 | Equality | = != <> |
7 | Condicional E | and && |
8 | OU condicional | or || |
Quando dois operadores em uma expressão têm o mesmo nível de precedência do operador, eles são avaliados da esquerda para a direita, com base em sua posição na consulta. Por exemplo, x+y-z
é avaliado como (x+y)-z
.
Você pode usar parênteses para substituir a precedência definida dos operadores em uma consulta. Tudo entre parênteses é avaliado primeiro para produzir um único resultado antes que esse resultado possa ser usado por qualquer operador fora dos parênteses. Por exemplo, x+y*z
multiplica y
por z
e depois adiciona x
, mas (x+y)*z
adiciona x
e y
multiplica o resultado por z
.