IF NO POSTGRESQL

1. IF NO POSTGRESQL

Reges Alexandre
regesrao

(usa Slackware)

Enviado em 14/07/2008 - 16:58h

Ai galera, estou precisando tirar uma duvida, como fazer um if no postrgresql, pois, encontrei alguns exemplos usando o plpgsql, mas não encontrei nenhum exemplo para o sql, alguém pode me ajudar???


  


2. Re: IF NO POSTGRESQL

Denis Doria
thuck

(usa Debian)

Enviado em 14/07/2008 - 18:35h

Bem, não é exatamente um IF, mas para simular o msm efeito vc pode usar o 'where':

select nome,idade,shell,id from users where id!='thuck';




3. Re: IF NO POSTGRESQL

Juliano Atanazio
julianometal

(usa Ubuntu)

Enviado em 08/09/2008 - 22:04h

Sim! Tem "IF" no PostgreSQL usando apenas sql.
A estrutura é a seguinte:

CASE expressão
WHEN valor THEN resultado
[WHEN ...]
[ELSE resultado]
END

Ok... talvez assim não tenha ficado tão claro...
Vamos pôr a mão na massa!
Crie uma base de dados para teste.

O exercício consiste em dizer se uma cidade é paulista ou não
baseando-se na UF.

Criação da tabela:

create table unidade(
uf char(2),
cidade varchar(20)
);

Inserção de dados:

INSERT INTO unidade VALUES ('SP','Sao Paulo');
INSERT INTO unidade VALUES ('SP','Jundiai');
INSERT INTO unidade VALUES ('SP','Valinhos');
INSERT INTO unidade VALUES ('SP','Americana');
INSERT INTO unidade VALUES ('RJ','Niteroi');
INSERT INTO unidade VALUES ('RJ','Rio de Janeiro');
INSERT INTO unidade VALUES ('MG','Belo Horizonte');
INSERT INTO unidade VALUES ('MG','Ouro Preto');

Agora sim nosso "IF", que na verdade é o "CASE":

SELECT uf,cidade,
CASE uf
WHEN 'SP' THEN 'Paulista'
ELSE 'Não paulista'
END
FROM unidade;

Produziu o seguinte resultado:

uf | cidade | case
----+----------------+--------------
SP | Sao Paulo | Paulista
SP | Jundiai | Paulista
SP | Valinhos | Paulista
SP | Americana | Paulista
RJ | Niteroi | Não paulista
RJ | Rio de Janeiro | Não paulista
MG | Belo Horizonte | Não paulista
MG | Ouro Preto | Não paulista
(8 registros)

Caso desejar pode dar um apelido à terceira coluna:

SELECT uf,cidade,
CASE uf
WHEN 'SP' THEN 'Paulista'
ELSE 'Não paulista'
END

AS origem

FROM unidade;

Resultado:

uf | cidade | origem
----+----------------+--------------
SP | Sao Paulo | Paulista
SP | Jundiai | Paulista
SP | Valinhos | Paulista
SP | Americana | Paulista
RJ | Niteroi | Não paulista
RJ | Rio de Janeiro | Não paulista
MG | Belo Horizonte | Não paulista
MG | Ouro Preto | Não paulista
(8 registros)

Agora o resto é com vc!

Um grande abraço!











Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts