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
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 |