PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Qual é a sintaxe do PostgreSQL equivalente ao CONNECT BY ... START WITH da Oracle?


Use um RECURSIVE CTE no 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;

Detalhes e links para documentação na minha resposta anterior:
  • O PostgreSQL tem uma pseudocoluna como "LEVEL" no Oracle?