Em 05-02-2014 17:02, Douglas Fabiano Specht escreveu:
Em 5 de fevereiro de 2014 16:40, Matheus Saraiva
<matheus.sara...@gmail.com <mailto:matheus.sara...@gmail.com>> escreveu:
Em 05-02-2014 12:54, Euler Taveira escreveu:
On 05-02-2014 11:32, Matheus Saraiva wrote:
Quero deixar a clausula where encapsulada na view e na
chamada da view
eu passaria apenas o nome 'matheus', 'paulo', 'joão', etc....
E você pode deixar condições da cláusula WHERE encapsuladas na
VIEW. Por
exemplo:
CREATE VIEW funcionarios_ativos AS SELECT nome, salario FROM
funcionarios WHERE status = TRUE;
SELECT * FROM funcionarios_ativos WHERE nome = 'foo';
Ele apresentará somente funcionários cujo nome é 'foo' e que
estejam
"ativos". O que a visão faz é mesclar o SELECT que a definiu com o
SELECT na qual ela foi utilizada. Portanto, internamente temos uma
reescrita da consulta para:
SELECT nome, salario FROM funcionarios WHERE status = TRUE AND
nome = 'foo';
Observe que *somente* as colunas mencionadas na definição da
visão são
apresentadas.
E se eu quisesse não escrever nenhum WHERE na linha que chama a
VIEW? Algo como:
CREATE VIEW funcionarios_ativos AS SELECT nome, salario FROM
funcionarios WHERE nome = (VALOR SERÁ PASSADO NA CHAMADA DA VIEW);
SELECT * FROM funcionarios_ativos (VALOR QUE SERÁ USADO NO WHERE
ENCAPSULADO);
Como ficaria?
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
<mailto:pgbr-geral@listas.postgresql.org.br>
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Mateus
explique melhor por que vc precisa ser dessa maneira, pois diretamente
na view nao é possivel, somente criando uma função para isso.
--
Douglas Fabiano Specht
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Quero fazer o que o Matheus Oliveira fez, porém, com VIEW. Meu objetivo
com isso é minimizar o máximo possível o tamanho da linha ao chamar a
view. Vi que isso pode ser feito com funções, mas trabalhar com VIEW é
mais prático. Resumindo quero deixar tudo encapsulado sem ter que
escrever clausula WHERE na linha de chamada da view. Quero apenas passar
o nome da view e o valor que será usado no filtro where que está dentro
da view. Igualmente como eu faria se fosse uma função: SELECT * FROM
sp_teste('TESTANDO');.
Mas pelo que vejo, view não suporta isso. Sendo possível apenas com função.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral