Tudo jóia ? Não, colega, ABSOLUTAMENTE NÃO ROLA de vc usar um ALIAS de outra coluna num dado SELECT : dá um look no manual de "SQL REFERENCE" que no capítulo do SELECT vc vai ver CLARAMENTE que num lista a ser pesquisada num SELECT só vale OU colunas de tabelas citadas no FROM, OU colunas baseadas em função, OU pseudocolunas (como USER, SYSDATE, etc) OU colunas definidas numa sub-query OU colunas definidas num CTE/WITH CLAUSE.... Veja só o exemplo : SYSTEM@O11GR2>create table TAB_TESTE (campo1 number, campo2 number, campo3 number);
Tabela criada. SYSTEM@O11GR2>insert into TAB_TESTE values (1,2,3); 1 linha criada. SYSTEM@O11GR2>insert into TAB_TESTE values (4,5,6); 1 linha criada. SYSTEM@O11GR2>SELECT CAMPO1 A, 2 CAMPO2 B, 3 CAMPO1 + CAMPO2 C, 4 C * 3.14 D 5 FROM TAB_TESTE; C * 3.14 D * ERRO na linha 4: ORA-00904: "C": identificador inválido ==> Óbvio Ululante : como dito, o parser encontrou uma referência a um tal de C na linha 4 da minha query, e esse C ** não ** está definido nas tabelas indicadas no FROM, ** não ** é uma função, ** não ** é uma pseudocoluna, Não é parte duma CTE, então ele Não Sabe o que é.... O que vc TEM que fazer é definir esse C numa dessas opções que ele permite reuso, é isso... ==> Exemplo definindo C numa subquery : SYSTEM@O11GR2>SELECT CAMPO1 A, 2 CAMPO2 B, 3 C, 4 C * 3.14 D 5 FROM ( 6 SELECT CAMPO1, CAMPO2, CAMPO1+CAMPO2 as C 7 FROM TAB_TESTE 8 ); A B C D ---------- ---------- ---------- ---------- 1 2 3 9,42 4 5 9 28,26 2 linhas selecionadas. SYSTEM@O11GR2>SYSTEM@O11GR2> ==> okdoc ??? []s Chiappa