Hoje vamos conhecer uma utilidade muito interessante para a expressão “case when” em bancos de dados. Neste “post” vamos verificar a validade de produtos com o MySQL. Siga os passos:
1. Criar tabela de produtos:
CREATE TABLE `produtos` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`produto` VARCHAR(50) NOT NULL,
`validade` DATE NOT NULL,
PRIMARY KEY (`id`)
);
2.
Cadastre alguns produtos; deixe alguns com a
data de validade anterior ao dia atual:
Agora utilize a seguinte SQL para relacionar os produtos vencidos:
SELECT produto,
case
when validade > CURDATE()
then 'produto válido'
when validade = CURDATE() THEN 'vencendo hoje'
when validade < CURDATE() then 'atenção - VENCIDO'
END
situacao,
validade
FROM produtos;
Ou seja, SE a data de validade for maior que (>) a data
atual (função CURDATE()), o banco de dados imprimirá a frase 'produto válido';
se igual, 'vencendo hoje'; e, claro, se a data de validade for inferior (<) à
data de hoje será impressa a expressão 'atenção - VENCIDO'; a esta coluna dei o
nome de “situacao". Veja o resultado:
É isso aí. Por hoje é só, pessoal.