DevPath · Aprenda a programar ESPTEN

SQL avançado: janelas, views e CASE

Lógica condicional com CASE

A expressão CASE

CASE é o "if/else" do SQL: avalia condições em ordem e retorna o valor da primeira que se cumpre. É uma expressão, então pode ir em qualquer lugar onde caiba um valor: no SELECT, no ORDER BY, etc.

SELECT
  nome,
  preco,
  CASE
    WHEN preco < 50  THEN 'barato'
    WHEN preco < 200 THEN 'medio'
    ELSE 'caro'
  END AS faixa
FROM produtos;

Forma abreviada

Quando você compara uma mesma coluna contra valores concretos, há uma forma mais curta:

SELECT nome,
  CASE categoria
    WHEN 'perifericos' THEN 'acessorio'
    WHEN 'telas'       THEN 'visualizacao'
    ELSE 'outro'
  END AS tipo
FROM produtos;

Cuidado com a ordem das condições. Como vence a primeira que se cumpre, os ramos mais específicos devem vir antes dos mais gerais.

Exemplos

Classificar preços em faixas legíveis

SELECT nome, preco,
  CASE
    WHEN preco < 50  THEN 'barato'
    WHEN preco < 200 THEN 'medio'
    ELSE 'caro'
  END AS faixa
FROM produtos
ORDER BY preco;
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
Funções de janela →