29/09/2008
Por: Sueli Mitie Joboji
Neste artigo veremos como utilizar a cláusula Case dentro de um select (comando para a consulta de dados).
Suponha que exista em sua aplicação, a tabela Pedidos. Esta tabela possui os seguintes campos: id, data da compra, forma de pagamento e o valor. O campo forma de pagamento (forma_pagamento) pode assumir os seguintes valores: 1 (boleto bancário), 2 (cartão de crédito VISA) ou 3 (cartão de crédito MASTERCARD).
Pedidos |
|||
id |
data |
forma_pagamento |
valor |
1 |
12/09/2008 |
1 |
108,00 |
2 |
17/09/2008 |
2 |
52,00 |
3 |
18/09/2008 |
3 |
328,00 |
Para consultar as formas de pagamento cadastradas:
if forma_pagamento = 1 then
nome_forma_pagamento = “Boleto Bancário”
elseif forma_pagamento = 2 then
nome_forma_pagamento = “Cartão de Crédito VISA”
else
nome_forma_pagamento = “Cartão de Crédito MASTERCARD”
end if
CASE id
when 1 then 'Boleto Bancário'
when 2 then 'Cartão de Crédito VISA'
when 3 then 'Cartão de Crédito MASTERCARD'
end as nome
FROM forma_pagamento
Suponhamos agora, que exista a tabela Clientes. Para saber se o cliente cadastrado é uma pessoa física ou jurídica basta olhar para o campo ‘pessoa_fisica’. Se este campo estiver setado, imprimimos “Pessoa Física”, caso contrário, “Pessoa Jurídica”:
SELECT id,nome,
CASE
when pessoa_fisica is not null then 'Pessoa Física'
else 'Pessoa Jurídica'
END as tipo_pessoa
FROM clientes
Esta apresentação reflete a opinião pessoal do autor sobre o tema, podendo não refletir a posição oficial do Portal Educação.
O Portal Educação possui uma equipe focada no trabalho de curadoria de conteúdo. Artigos em diversas áreas do conhecimento são produzidos e disponibilizados para profissionais, acadêmicos e interessados em adquirir conhecimento qualificado. O departamento de Conteúdo e Comunicação leva ao leitor informações de alto nível, recebidas e publicadas de colunistas externos e internos.
UOL CURSOS TECNOLOGIA EDUCACIONAL LTDA, com sede na cidade de São Paulo, SP, na Alameda Barão de Limeira, 425, 7º andar - Santa Cecília CEP 01202-001 CNPJ: 17.543.049/0001-93