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
