Precedência do operador (Entity SQL)
Quando uma consulta Entity SQL tiver vários operadores, a precedência de operadores determina a sequência na qual as operações são executadas. A ordem de execução pode impactar significativamente no resultado da consulta.
Os níveis de precedência dos operadores são mostrados na tabela a seguir. Um operador com um nível mais alto é avaliada antes de um operador com um nível inferior.
Nível | Tipo de operação | Operador |
---|---|---|
1 | Primário | . , [] () |
2 | Unário | ! not |
3 | Multiplicativo | * / % |
4 | Aditiva | + - |
5 | Ordenando | < > <= >= |
6 | Igualitário | = != <> |
7 | AND condicional | and && |
8 | OR condicional | or || |
Quando dois operadores em uma expressão têm o mesmo nível de precedência de operadores, são avaliados esquerda para a direita, com base na 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 de operadores definida em uma consulta. Todos dentro dos parênteses é avaliado primeiro para produzir um único resultado antes que o resultado pode ser usado por qualquer operador fora dos parênteses. Por exemplo, x+y*z
multiplica y
por z
e adiciona x
, mas (x+y)*z
adiciona x
a y
e multiplica o resultado por z
.