RSS

Artigos

Comando condicional no SQL: CASE

Postado em 04/07/2011 às 14:24 em Banco de Dados

Oracle

Olá pessoal!

Conforme prometi, vamos dar continuidade ao post anterior: Comando condicional no SQL Oracle: DECODE.

O comando CASE é muito similar ao DECODE. A diferença básica é que com o DECODE necessitamos conhecer os valores que o campo em questão possuirá enquanto que no CASE não. O comando CASE nos dá a possibilidade de testar intervalos de valores. Vamos ao um exemplo para ficar mais claro.

Vamos supor que temos a tabela VENDAS e o nosso gerente queira criar uma classificação dos vendedores de acordo com as vendas:

  1. Vendedores com vendas superiores a R$ 1000, considerá-lo EXCELENTE
  2. Vendedores com vendas entre R$ 700 e R$ 1000, considerá-lo BOM
  3. Vendedores com vendas entre R$ 500 e R$ 700, considerá-lo REGULAR
  4. Vendedores com vendas inferiores a R$ 500, considerá-lo RUIM

Normalmente precisaríamos fazer este tipo de checagem no programa, ou stored procedure, ou function, certo? ERRADO!!! No Oracle, você pode efetuar esta checagem diretamente no SELECT e assim já trazer o resultado da forma como você gostaria. O comando ficaria assim:

SELECT vlr_ venda, CASE

when vlr_venda < 500 then 'RUIM'

when vlr_venda between 500 and 699 then 'REGULAR'

when vlr_venda between 700 and 999 then 'BOM'

when vlr_venda >= 1000 'EXCELENTE'

END resultado FROM VENDAS

O resultado seria algo assim:

vlr_venda resultado
210 RUIM
2500 EXCELENTE
542 REGULAR
748 BOM
1000 EXCELENTE

Isso é muito útil, por exemplo, quando precisamos criar algum tipo de consulta classificando os resultados, sem exibir a fonte da informação, ou seja, vamos dizer que no exemplo acima o gerente não quisesse que os valores das vendas aparecesse no resultado, apenas a classificação.

Bom, é isso aí!

 

Se quiserem dar uma olhadinha no artigo anterior, é só clicar: Comando condicional no SQL Oracle: DECODE.

Espero que tenham gostado.

Abraços,

Silvia Pires
Solicite uma visita: +55 (12) 3322-4581
Copyright @ 2002 - Todos os direitos reservados