PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Quelle est la syntaxe PostgreSQL équivalente à CONNECT BY ... START WITH d'Oracle ?

Utiliser un RECURSIVE CTE dans Postgres :

WITH RECURSIVE cte AS (
   SELECT key, value, 1 AS level
   FROM   taxonomy
   WHERE  key = 0

   UNION  ALL
   SELECT t.key, t.value, c.level + 1
   FROM   cte      c
   JOIN   taxonomy t ON t.taxHier = c.key
   )
SELECT value
FROM   cte
ORDER  BY level;

Détails et liens vers la documentation dans ma réponse précédente :

  • PostgreSQL a-t-il une pseudo-colonne comme "LEVEL" dans Oracle ?