2009/8/29 MIGUEL JOSE DE LIMA <[email protected]>:
> Pessoal,
> Em alguns produtos da M.S. eu podia usar o resultado de uma expressão na
> clausula WHERE e
> no PostgreSQL eu não consigo, dando erro que o campo não existe!
> Eu pergunto: É possível? Existe alguma referencia que possa ler?
>
> Ex.: SELECT c1, c2, COUNT(id) as qtde FROM tabela WHERE qtde > 1
>        GROUP BY c1, c2 ...;
>        *** (erro qtde - não existe)
> ou
>        SELECT c1,
>                      c2,
>                     (SELECT ... saldoanterior FROM tbsaldo... WHERE ano =
> '2008') AS c3,
>                     CASE c3 ... AS c4 ... FROM tabela;
>         *** Neste caso eu gostaria de testar SE o RESULTADO DE c3 É NULO
>              (pode não existir dados p/ saldo anterior) e criar o campo c4
> com um CASE.
>               ou seja, se c3 IS NULL retorna 0.000 se não retorna c3.
>              ---
> O intuito não é discutir lógica ou necessidade, é saber se é possível?
>



Não, não é possível usar um aliás de uma coluna de saída na cláusula WHERE.
Quanto a referência o melhor é sempre o manual (o do PostgreSQL é
realmente um dos melhores manuais).

http://www.postgresql.org/docs/current/interactive/index.html

Sua questão está respondida em (SELECT List):
http://www.postgresql.org/docs/current/interactive/sql-select.html
"An output column's name can be used to refer to the column's value in
ORDER BY and GROUP BY clauses, but not in the WHERE or HAVING clauses;
there you must write out the expression instead."

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a