Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

USO DE 'BETWEEN' EM 'CASE WHEN'

Tentei resolver o desafio proposto da seguinte forma:

SELECT NOME, LIMITE_DE_CREDITO, 

(CASE WHEN  LIMITE_DE_CREDITO >= 150000 THEN 'CLIENTE GRANDE'

          WHEN LIMITE_DE_CREDITO BETWEEN 149999 AND 110000 THEN 'CLIENTE MEDIO'
          
      ELSE 'CLIENTE PEQUENO' END) AS CLASSIFICACAO
      
FROM TABELA_DE_CLIENTES

ORDER BY LIMITE_DE_CREDITO;

Porém ao excecutar a ordem, não eram detectador clientes médios. Queria saber o por que isso acontece e se de fato não se pode usar 'BETWEEN' em cenários de 'CASE WHEN'.

1 resposta
solução!

Olá, Iago! Como vai?

Não há nenhum problema com o uso do operador BETWEEN em conjunto com o CASE WHEN.

No seu código, a condição que verifica os clientes médios está com a lógica incorreta, porque o operador BETWEEN é inclusivo, ou seja, ele inclui os valores de limite inferior e superior. Portanto, a condição BETWEEN 149999 AND 110000 não irá retornar nenhum resultado, pois não há nenhum valor que seja simultaneamente maior que 149999 e menor que 110000.

Para corrigir isso, você pode ajustar a condição para WHEN LIMITE_DE_CREDITO BETWEEN 110001 AND 149999. Dessa forma, a condição irá considerar os valores entre 110001 e 149999, inclusive.

Fora isso, está tudo certinho! Espero que o problema se resolva e você possa continuar seus estudos tranquilamente. Se tiver mais alguma dúvida, é só me dizer.

Abraços.

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