Aula: 04 Exercício: 06
Pergunta: Refaça a Stored Procedure do exercício anterior usando CASE-END-CASE. Chame de Comparativo_Vendas_Case.
Resposta do Instrutor: Não conseguimos modificar a Stored Procedure anterior usando CASE-END-CASE porque esta estrutura não admite condições com maior, menor e AND/OR. Ela se aplica apenas para condições de igualdades.
Comentário: Este tipo de resposta demonstra total falta de interesse pelo instrutor, e no mínimo preguiça, sem falar a falta de consideração pelos alunos ao afirmar tal situação. O uso do CASE..THEN..END permite sim testes utilizando AND/OR/BETWEEN.
Exemplo: Tabela salarios
faixa_salarial |
---|
50.000 |
--------------- |
100.000 |
--------------- |
200.000 |
--------------- |
300.000 |
--------------- |
400.000 |
--------------- |
500.000 |
--------------- |
select fs.faixa_salarial
,case
when fs.faixa_salarial <= 50000 then 'Classe E' -- Operador <= (Menor ou igual)
when fs.faixa_salarial between 200000 and 300000 then 'Classe D' -- Uso do operador Between
when fs.faixa_salarial > 300000 and fs.faixa_salarial < 400000 then 'Classe C' -- Uso do AND
when fs.faixa_salarial = 400000 or fs.faixa_salarial = 500000 then 'Classe A' -- Uso do OR
else 'Não mapeado'
end as Classe
from salarios fs;