Em 5 de fevereiro de 2014 16:40, Matheus Saraiva
<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
> 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

Responder a