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
