1
resposta

Solução possível para o exercício de case

Olá a todos essas foram as formas que encontrei para resolver a atividade

SELECT NOME, date_format(DATA_DE_NASCIMENTO, '%Y') as ano,
CASE 
when date_format(DATA_DE_NASCIMENTO, '%Y') < 1990 then 'Velho'
  >= 1990 and date_format(DATA_DE_NASCIMENTO, '%Y') <= 1995 then 'Jovens'
when date_format(DATA_DE_NASCIMENTO, '%Y') > 1995 then 'Crianças'
else 'Fora dos parâmetros'
END
FROM sucos_vendas.tabela_de_clientes;

Obs: Em jovens também pode ser usando

when date_format(DATA_DE_NASCIMENTO, '%Y') BETWEEN 1990 AND  1995 then 'Jovens'
1 resposta

Olá Hedwing, tudo bem? Esse primeiro código gera um erro de sintaxe, já se usarmos como no segunda parte funciona corretamente:

SELECT NOME, date_format(DATA_DE_NASCIMENTO, '%Y') as ano,
CASE 
    WHEN date_format(DATA_DE_NASCIMENTO, '%Y') <= 1990 THEN 'Velho' 
    WHEN date_format(DATA_DE_NASCIMENTO, '%Y') BETWEEN 1990 AND 1995 THEN 'Jovens'
    WHEN date_format(DATA_DE_NASCIMENTO, '%Y') > 1995 then 'Crianças'
ELSE 'Fora dos parâmetros'
END
FROM sucos_vendas.tabela_de_clientes;

Porém acho que no seu primeiro código você deve ter feito dessa forma:

SELECT NOME, date_format(DATA_DE_NASCIMENTO, '%Y') as ano,
CASE 
    WHEN date_format(DATA_DE_NASCIMENTO, '%Y') <= 1990 THEN 'Velho'
    WHEN date_format(DATA_DE_NASCIMENTO, '%Y') >= 1990 AND date_format(DATA_DE_NASCIMENTO, '%Y') <= 1995 THEN 'Jovens'
    WHEN date_format(DATA_DE_NASCIMENTO, '%Y') > 1995 then 'Crianças'
ELSE 'Fora dos parâmetros'
END
FROM sucos_vendas.tabela_de_clientes;

Bem, essas duas funcionam, é mais uma solução, mais um caminho de como resolver o exercício, e é muito bacana que você está indo além do exercício e buscando outras maneiras de solucionar os mesmo. Obrigado por compartilhar sua solução com a gente e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software