Dá uma olhada nesse artigo também:

http://web.archive.org/web/20020214065133/http://www.brasileiro.net/postgres/cookbook/view-recipes.adp?section_id=2&format=long

[]'s
- Walter

On 9/29/06, Luiz André Helfer <[EMAIL PROTECTED]> wrote:
> Muito Obrigado Walter, vou ler a matéria!
>
> Walter Cruz <[EMAIL PROTECTED]> escreveu:
> Oi Luiz!
>
> Nativamente, você não tem como fazer uma consulta hierárquica. Isso
> porque para isso são necessários SQL Recursivos, e isso apesar de
> definido do padrão SQL-99 ainda não foi implementado pelo PostgreSQL
> (até onde eu saiba, o único que implementou isso até agora foi o DB2).
> O Oracle implementa isso fugindo um pouco do padrão.
>
> Embora não seja possível nativamente, dá pra escrever uma função em
> pl/pgsql que faça o trabalho. Depois de quebrar a cabeça com queries
> recursivas esse mês, saiu na SQL Magazine um artigo sobre consultas
> recursivas no PostgreSQL. É um artigo do Rodrigo Hjort, que participa
> da lista também.
>
> Dá uma olhada nesse artigo, será bem útil no seu caso!
>
> []'s
> - Walter
>
>
> > Message: 6
> > Date: Thu, 28 Sep 2006 17:46:32 +0000 (GMT)
> > From: Luiz André Helfer
> > Subject: [PostgreSQL-Brasil] PostgreSQL - Select para uma hierarquia
> > To: [email protected]
> > Message-ID:
> <[EMAIL PROTECTED]>
> > Content-Type: text/plain; charset="iso-8859-1"
> >
> > Olá pessoal!
> >
> > Gostaria de saber se no PostgreSQL existe um select que mostre a estrutura
> > hierarquica de uma tabela.
> >
> > Exemplo:
> >
> > tabela A
> >
> > cd_a
> > tp_a
> >
> > Tabela B
> >
> > cd_b
> > tp_b
> > A_cd_a
> > A_cd_a_sub
> >
> > A tabela "A" tem filhos na "B" (A_Cd_a) e a tabela "B" pode não ser
> > terminal e gerar uma row na tabela "A" (A_Cd_a_sub) e assim sucessivamente
> > até o último nivel. Como retornar esta hierarquia em um select?
> >
> > Outro exemplo é um Plano de Conta Contábil que possui um
> > auto-relacionamento que possui diversos níveis (ex: 1 até 9) e o último
> grau
> > seria o terminal. Como retornar a hierarquia de um conta ora tendo o PAI
> ora
> > tendo o FILHO..?
> >
> > Agradeço se alguém puder me ajudar!
> >
> > em Oracle tem algo semelhante..... exemplo em Oracle
> >
> > Select Mod.Nome_Modulo
> > , Sys_Connect_By_Path (Mod.Nome_Modulo, '/')
> > , Mod.Mod_Id Id
> > , Mod.Usr_Userid
> > , Mod.Mod_Mod_Id
> > From Modulo Mod
> > Where Mod.Sn_Ativo = 'S'
> > And Mod.Usr_Userid = 'XXXXXXX'
> > And Mod.Tipo_Modulo = 3
> > Connect By Prior
> > Mod.Mod_Id = Mod.Mod_Mod_Id
> > Start With
> > Mod.Mod_Mod_Id Is Null
> >
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> Antes de perguntar consulte o manual
> http://pgdocptbr.sourceforge.net/
>
> Para editar suas opções ou sair da lista acesse a página da lista em:
> http://pgfoundry.org/mailman/listinfo/brasil-usuarios
>
>
>
> Grato,
>   .
>  . .
> . . .
> Helfer, Luiz André
>
>  ________________________________
>  Você quer respostas para suas perguntas? Ou você sabe muito e quer
> compartilhar seu conhecimento? Experimente o Yahoo! Respostas!
>
>
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> Antes de perguntar consulte o manual
> http://pgdocptbr.sourceforge.net/
>
> Para editar suas opções ou sair da lista acesse a página da lista em:
> http://pgfoundry.org/mailman/listinfo/brasil-usuarios
>
>
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a