Em 14/12/10, rodfs<[email protected]> escreveu: > > Considerando a tabela e os dados abaixo: > > > create table pessoa (pessoa VARCHAR(15), pai VARCHAR(15)); > > insert into pessoa values ('pai 1', null); > insert into pessoa values ('pai 2', null); > insert into pessoa values ('filho 1.1', 'pai 1'); > insert into pessoa values ('filho 1.2', 'pai 1'); > insert into pessoa values ('filho 2.1', 'pai 2'); > insert into pessoa values ('filho 1.3', 'pai 1'); > insert into pessoa values ('filho 1.4', 'pai 1'); > insert into pessoa values ('filho 2.2', 'pai 2'); > > > Gostaria de fazer uma consulta trazendo a hierarquia .... por exemplo no > Oracle ... faço dessa forma: > > > select * from pessoa p > start with pai is null > connect by prior p.pessoa = p.pai; > > > RESULTADO: > > pessoa pai > ------- ----- > pai 1 > filho 1.1 pai 1 > filho 1.2 pai 1 > filho 1.3 pai 1 > filho 1.4 pai 1 > pai 2 > filho 2.1 pai 2 > filho 2.2 pai 2 > > > > Utilizando o PostgreSQL 9.0, fiz dessa forma: > > > with recursive p1 (pessoa, pai) as ( > select pessoa, pai from pessoa where pai is null > union all > select p.pessoa, p.pai from pessoa p, p1 where p.pai = p1.pessoa > ) > select * from p1; > > > Porém o resultado ficou estranho ... como segue > > > RESULTADO: > > pessoa pai > ------- ----- > pai 1 > pai 2 > filho 1.1 pai 1 > filho 1.2 pai 1 > filho 1.3 pai 1 > filho 1.4 pai 1 > > > > Alguém poderia me ajudar ... preciso que o resultado se apresenta da mesma > forma como no Oracle !! >
Seu problema se refere apenas à classificação das linhas? Dados faltando? Alguma outra coisa? Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
