A função DECODE originalmente disponível nas instalações de bancos de dados Oracle pode, em consultas para o MS SQL Server e o MySQL, ser substituída pelo comando/função:
- A)CASE;
Correta, porque CASE substitui DECODE ao permitir retornos diferentes conforme condições avaliadas na consulta.
- B)COALESCE;
Errada, porque COALESCE trata valores nulos e não substitui a lógica de comparação condicional do DECODE.
- C)IF-THEN-ELSE;
Errada, porque IF-THEN-ELSE é uma estrutura de controle de programação, não a substituição típica em consultas SQL pedida pela questão.
- D)SUBSTRING;
Errada, porque SUBSTRING serve para extrair partes de textos e não para lógica condicional.
- E)SWITCH.
Errada, porque SWITCH é um termo de outras linguagens, não a função/comando equivalente esperado em SQL para esse caso.
Gabarito: A
A função DECODE ficou muito conhecida no Oracle porque permite fazer uma comparação e devolver um resultado diferente para cada hipótese, quase como um "se isto, então aquilo" dentro da consulta. Em termos práticos, ela serve para montar lógica condicional de forma compacta, sem precisar escrever várias instruções separadas. Quando a questão fala em substituir DECODE no SQL Server e no MySQL, a ideia é justamente usar a estrutura equivalente de decisão dentro da própria query. Nessas plataformas, o recurso mais próximo e esperado pela banca é o CASE. Ele faz exatamente esse papel: avalia condições e retorna valores diferentes conforme o teste lógico. Por isso, quando a prova pede a substituição de DECODE, a resposta correta é CASE, que é a forma padrão e mais geral de escrever lógica condicional em SQL. Vale lembrar que o DECODE é um recurso associado ao Oracle, enquanto CASE é parte do SQL padrão e aparece nas principais implementações, inclusive MySQL e SQL Server. Ou seja, a lógica é: em vez de um comando específico de uma marca, você usa uma construção mais universal e compatível. Em provas da FGV, esse tipo de troca de função por equivalente costuma cair de modo bem direto. Se você enxergar a ideia de comparação com retorno alternativo, pense logo em CASE. O resto das alternativas tenta confundir com funções de tratamento de nulos, texto ou estruturas que não fazem esse papel.