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!