Na lista aqui:
https://mariadb.com/kb/en/operator-precedence/
case-expressions são colocadas no mesmo nível de precedência que BETWEEN
, entre o NOT
operador e os operadores de comparação.
No entanto, as expressões case sempre começam CASE
e terminam com END
, e todas as subexpressões também são delimitadas pelas palavras- CASE
chave. Eles são como expressões entre parênteses, então não entendo por que as expressões de maiúsculas e minúsculas estão nesta lista.
Existe uma expressão SQL que seria analisada de forma diferente se a precedência da expressão de maiúsculas e minúsculas fosse definida como maior ou menor?
Para dar um exemplo, com 2 + 3 * 4
, obtemos resultados diferentes quando os parênteses são usados dessas 2 maneiras: 2 + (3 * 4)
e (2 + 3) * 4
. Esta pergunta é sobre como é impossível fazer o mesmo com arquivos CASE
. Não se pode substituir o uso de +
for CASE
e mostrar 2 usos diferentes de parênteses de modo que o resultado seja diferente entre eles.
Para comparar com outros RDBMSes, nem o SQLite nem o PostgreSQL incluem CASE
em suas listas de precedência de operadores.