Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Diferença de usar o BETWEEN ou não

Existe alguma diferença, ou cuidado na hora de usar o BETWEEN?

Fiz o desafio com os dois possibilidades, e a principio não observei diferenças.

SELECT nome,
    (CASE   WHEN limite_de_credito >= 150000 THEN 'Cliente grande'
            WHEN limite_de_credito BETWEEN 150000 AND 110000 THEN 'Cliente médio'
            ELSE 'Limite pequeno'
            END
    ) AS Classificação
FROM tabela_de_clientes;
SELECT nome,
    (CASE   WHEN limite_de_credito >= 150000 THEN 'Cliente grande'
            WHEN limite_de_credito < 150000 AND limite_de_credito >= 110000 THEN 'Cliente médio'
            ELSE 'Limite pequeno'
            END
    ) AS Classificação
FROM tabela_de_clientes;
2 respostas
solução!

Lucas, boa tarde.

O between é para simplificar, para evitar fazer duas condições, uma com >= e outra com <=, então separando sua dúvida:

  • Não tem diferença em usar uma condição com "between" ou duas com">=" e "<=".
  • No seu exemplo quem tem exatamente 150000 entraria nas duas primeiras condições do primeiro script (é >= 150000 e está entre (between) 110000 e 150000, mas como o case when é na ordem, ele seria classificado como 'Cliente grande'
  • E tem um erro nesse between, o correto seria "between 110000 AND 150000"

Melhor testar se é 'Grande' e 'Pequeno'. O Else fica com o 'Médio'.