Case When SQL / Postgres

10 10 2008

Saudações

Não o Battisti não morreu, apenas diminui a quantidade de posts pois nos últimos dias tenho encarados desafios realmente desafiadores, inclua nesse bolo o aprendizado de uma nova linguagem de programação, é meus amigos estou começando a mexer com Java pra Web, sendo assim, não se assustem se nesse santuário do PHP começarem a pipocar posts sobre Java :).

Sobre o CASE WHEN é o seguinte: tenho tentado fazer mais coisas via SQL a fim de otimizar um pouco o desempenho dos sistemas e nisso aprendi a usar esse cara, ai vai um exemplo:

SELECT
   cod,
   data
   case
      when tipo = 1 then 'Abacate'
      when tipo = 2 then 'Abobrinha'
   end as nome
FROM vegetais

Isso ai é um If disfarçado :), vc pode fazer coisas mais complexas como por exemplo fazer uma outra SQL dentro do THEN de acordo com os dados que venham de um campo, exemplo:

SELECT
   cod,
   data
   case
      when tipo = 1 then
      select valor from abacate
      when tipo = 2 then
      select valor from abobrinha
   end as valor
FROM vegetais

Nesse caso o valor da abobrinha e do abacate são armazenados em tabelas separadas então de acordo com o tipo o valor deve vir de sua respectiva tabela.

Bom é isso ai. Bom Sorte até mais e tchau!


Ações

Information

3 responses

23 01 2012
Aprendiz

Muito obrigado amigo essa sintaxe simples me fez entender melhor do que a documentação. Parabéns pelo blog.

12 09 2014
Giovani

Otima explicação! Funcionou aqui, obrigado. 😉

19 02 2015
Marcio Carvalhal

alguém pode me ajudar…essa sintaxe não está dando certo..

select

case when tipo_arecad = ‘a’ then (SELECT sum (case datepart (month, dt_arrecad) when 1 then 1 else 0 end) as ‘Janeiro_ARRECADADO’)

FROM ARRECADACAO WHERE DT_ARRECAD = ‘20050124’

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: