Aula 9: Funções Oracle — NVL, DECODE, CASE, COALESCE na prática

Aula 9: Funções Oracle — NVL, DECODE, CASE, COALESCE na prática

Nesta aula, vamos nos aprofundar em funções específicas dentro do Oracle SQL, conhecidas como Funções Oracle. Entender estes conceitos é crucial para manipular dados de maneira eficiente e para resolver problemas comuns encontrados no dia a dia de qualquer analista ou desenvolvedor que usa bancos de dados Oracle. Vamos explorar como utilizar as funções NVL, DECODE, CASE e COALESCE de maneira prática e objetiva.

O que você vai aprender nesta aula

  • Conceito e uso da função NVL.
  • Como e quando usar a função DECODE.
  • Aplicação prática da expressão CASE.
  • Usos da função COALESCE em comparação ao NVL.

Função NVL: Conceito e Uso

A função NVL é uma das Funções Oracle que permite substituir valores nulos por um valor definido pelo usuário. Isso é útil quando você quer assegurar que os resultados de uma consulta não retornem valores nulos, que podem impactar negativamente em cálculos ou relatórios.

No banco de dados Oracle, a função NVL é utilizada da seguinte forma:

SELECT NVL(salario, 0) AS salario_ajustado FROM funcionarios;

Neste exemplo, qualquer valor nulo na coluna “salario” será substituído pelo valor 0 na consulta.

Função DECODE: Transformando Condições em Resultados

A função DECODE permite realizar transformações baseadas em condições, de forma similar a um comando de switch-case encontrado em muitas linguagens de programação. Ela reduz a complexidade de múltiplos IF ELSE.

SELECT nome, DECODE(cargo, 'GERENTE', 'Senior', 'Junior') AS nivel_cargo FROM funcionarios;

No exemplo acima, se o cargo for ‘GERENTE’, o resultado da função DECODE retornará ‘Senior’, caso contrário, ‘Junior’.

Expressão CASE: Flexibilidade e Legibilidade

A expressão CASE é similar ao DECODE, mas oferece uma sintaxe mais flexível e legível. Isso a torna muito popular em consultas SQL complexas.


SELECT nome,
  CASE
    WHEN salario >= 10000 THEN 'Alto'
    WHEN salario >= 5000 THEN 'Médio'
    ELSE 'Baixo'
  END AS categoria_salario
FROM funcionarios;

O comando acima classifica os funcionários em categorias salariais: Alto, Médio ou Baixo.

Função COALESCE: Escolha o Primeiro Valor Não-nulo

A função COALESCE retorna o primeiro valor não-nulo em uma lista de argumentos. Ela é extremamente útil quando você precisa verificar múltiplas colunas para encontrar um valor não-nulo.

SELECT COALESCE(email_residencial, email_comercial, 'sem email') AS contato_email FROM contatos;

Esse exemplo busca primeiro um valor na coluna ‘email_residencial’ e, se for nulo, passa para ‘email_comercial’, retornando ‘sem email’ se ambos forem nulos.

Resumo da Aula 9

Nesta aula, exploramos como as Funções Oracle NVL, DECODE, CASE e COALESCE permitem realizar manipulações poderosas de dados que ajudam a resolver problemas comuns de dados nulos e transformações condicionais. Utilizar essas funções diariamente é uma prática comum em nossos projetos na JRT Technology Solutions, pois ajudam a otimizar e simplificar consultas SQL. Na próxima aula, vamos abordar joins e como eles podem ser combinados com essas funções para consultas avançadas.

Quer aprender na prática com especialistas?

A JRT Technology Solutions oferece treinamentos e implementação de Oracle SQL para equipes corporativas.



Falar no WhatsApp

Thiago Paes Rodrigues

Com mais de 22 anos de experiência em Tecnologia da Informação, este profissional construiu uma trajetória sólida como empresário, atuando de forma estratégica na implementação de soluções tecnológicas que otimizam processos e impulsionam resultados em diferentes setores.