Introdução
O principal objetivo deste post é explicar como se faz a utilização da cláusula CASE no Firebird.
Montando ambiente de teste
Para testarmos neste post iremos criar uma tela simples chamada PESSOA que guarda algumas informações
pertinentes a uma determinada pessoa (DATA_NASCIMENTO, nome, numero de filhos)
CREATE TABLE PESSOAS
(
PES_ID INTEGER PRIMARY KEY,
PES_DATA_NASCIMENTO DATE,
PES_NUMERO_FILHOS INT,
PES_NOME VARCHAR(48)
);
Após criar uma tabela será necessário popula-la.
INSERT INTO PESSOAS VALUES(1,'1988-12-31',3,'MARCOS');
INSERT INTO PESSOAS VALUES(2,'1982-03-31',5,'MARIO');
INSERT INTO PESSOAS VALUES(3,'1997-10-3',4,'JULHO');
INSERT INTO PESSOAS VALUES(4,'1991-11-12',2,'ROBERTO');
INSERT INTO PESSOAS VALUES(5,'1989-12-15',1,'FERNANDO');
Figura 1: Tabela PESSOAS bem com seu conteúdo.
Utilizando o comando CASE
A sintaxe do comando é bem simples basta seguir a sintaxe abaixo:
SELECT
CASE
CAMPO_TESTADO
WHEN SITUACAO_1 THEN
RESPOSTA_1
WHEN SITUACAO_2 THEN
REPOSTA_2
ELSE RESPOTA_N
END
FROM
TABELA
Onde.
- CAMPO_TESTADO - Campo a ser testado.
- RESPOSTA_1 até REPOSTA_N - Possíveis resultados da expressão testada.
- TABELA - Tabela a ser utilizada.
Exemplo
Vou criar uma query na qual a expressão "Tem filho único" é expressada quando o indivíduo tem um único filho e "Tem mais de um filho", quando o indivíduo tem mais de um filho.
SELECT
CASE
pes_numero_filhos
WHEN 1 THEN
'Tem filho único'
ELSE
'Tem mais de um filho'
end AS SITUACAO_FILHO
,pes_nome
FROM PESSOAS
Figura 2: Resultado da execução da query.
Conclusão
Como foi possível ver ao longo do post a utilização da Cláusula CASE no firebird é bem simples. Para este post foi utilizada a versão 2.5 do firebird.