Re: Fwd: [SQL] Requête recursive

From: Cédric Villemain <cedric(at)2ndquadrant(dot)com>
To: pgsql-fr-generale(at)postgresql(dot)org
Cc: Frederic Gaerel <frederic(dot)gaerel(at)chronopost(dot)fr>
Subject: Re: Fwd: [SQL] Requête recursive
Date: 2014-09-22 14:07:16
Message-ID: 1501015.SfCp3u1mef@obelix
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Le rendu n'est pas identique, mais cela peut toujours aider.
* L'utilisation de 'generation' permet de retrouver facilement les
descendants d'un parent donné si l'on souhaite réutiliser le résultat de
cette requête.
* generation permet aussi de limiter la récursivité, au cas où...

WITH RECURSIVE branches( code_maitre, code, generation) AS (
SELECT S.code_maitre, S.code, 0 as generation
FROM site S
WHERE S.code_maitre IS NULL
UNION ALL
SELECT S.code_maitre, S.code, generation+1 as generation
FROM site S join branches b ON (b.code = S.code_maitre)
WHERE generation < 20
)

SELECT concat(
repeat(' ', B.generation),
B.code_maitre,
'-->' ,
B.code)
, B.generation
FROM branches B
ORDER BY B.generation asc ;

--
Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Christophe Mailhebuau 2014-10-02 07:23:03 Script de backup
Previous Message Frederic Gaerel 2014-09-22 13:04:33 Fwd: [SQL] Requête recursive