2
respostas

Duvida sobre sintaxe

Boa noite!

Por que devevemos declarar, dentro do case, antes da coluna data_de_nascimento o YEAR (ano)? Se eu não declarar, só aparece uma das condições que é a última: Ah, criancinha.

SELECT NOME,
CASE
WHEN YEAR(DATA_DE_NASCIMENTO) < 1990 THEN 'DESCULPE, MAS VOCÊ É VELHO'
WHEN YEAR(DATA_DE_NASCIMENTO) >= 1990 AND YEAR(DATA_DE_NASCIMENTO) <= 1995 THEN 'JOVEM, PERTO DE FICAR VELHO'
ELSE 'AH, CRIANCINHA'
END AS 'CLASSIFICAÇÃO POR IDADE'
FROM tabela_de_clientes;
2 respostas

Oii, Adson! Tudo bem?

Peço desculpas pela demora em respondê-lo.

Precisamos declarar YEARantes de (DATA_DE_NASCIMENTO) para extrair apenas o ano de nascimento para facilitar a comparação com valores numéricos no WHEN.

Sem a declaração do YEAR, a comparação seria feita com a data completa. Para exemplificar, caso tenha uma pessoa nascida em 1990-05-10, a comparação DATA_DE_NASCIMENTO < 1990 seria falsa, pois a data completa é maior do que 1990-01-01.

Ao utilizar YEAR(DATA_DE_NASCIMENTO), será feite a conversão da data de nascimento em um valor numérico (ano) podendo assim fazer a comparação do jeito certo.

Caso tenha interesse em aprofundar os seus conhecimentos na sintaxes do SQL, como o YEAR, recomendo a leitura da documentação oficial, que deixarei abaixo:

A página pode abrir em Inglês, mas você pode clicar nela com o botão de direito do mouse e escolher a opção "Traduzir para o português".

Espero ter ajudado a entender melhor, Adson.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Olá, Nathalia! Sua explicação foi perfeita. Muitíssimo obrigado.