2.12. Expressões
Através da combinação das operações e operandos, podemos criar expressões, como as expressões matemáticas convencionais:
Uma expressão deve resultar em um valor de um certo tipo:
2.12.1. Ordem de Avaliação de Expressões
Considere a seguinte expressão: \(5 * 2 + 3 / 4\). Qual o resultado dessa expressão?
3.25?
((5 * 2) + 3) / 4 → 3.2510.75?
(5 * 2) + (3 / 4) → 10.75Por quê?
Quando uma expressão contém mais de dois operadores, a ordem em que eles são avaliados é significativa. Por isso, existe uma convenção bem definida da precedência de cada operador. No caso das operações aritméticas, a prioridade é a seguinte:
multiplicação, divisão, potenciação e resto da divisão;
adição e subtração.
Assim como na matemática, podemos usar parênteses para controlar essa prioridade.
Além das regras de precedência, temos também a ordem de aplicação. Vários operadores são infixos, isto é, temos um literal ou variável ou expressão, seguido do operador, seguido por outro literal ou variável ou expressão.
Nas linguagens de programação, vários operadores possuem uma associatividade da esquerda para direita.
Nota
Também podemos usar a função pg_typeof
para descobrir o tipo de uma expressão:
SELECT pg_typeof(5 * 2 + 3 / 4);
2.12.2. Expressões Lógicas
A expressão lógica a seguir verifica se o ano de 2022 é ou não bissexto:
SELECT (2022 % 4 = 0) and (2022 % 100 <> 0 or 2022 % 400 = 0);
Dica
Anos bissextos ocorrem a cada quatro anos, exceto anos múltiplos de 100 que não são múltiplos de 400.