sql >> Databáze >  >> RDS >> PostgreSQL

Jaká je ekvivalentní syntaxe PostgreSQL se syntaxí Oracle CONNECT BY ... START WITH?

Použijte RECURSIVE CTE v 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;

Podrobnosti a odkazy na dokumentaci v mé předchozí odpovědi:

  • Má PostgreSQL pseudosloupec jako "LEVEL" v Oracle?


  1. Volání API z uložené procedury SQL Server

  2. Spuštění SQL skriptu přes psql dává syntaktické chyby, které se v PgAdmin nevyskytují

  3. Kontrola, zda položka neexistuje v jiné tabulce

  4. PHP CRUD Vytvářejte, upravujte, aktualizujte a mažte příspěvky pomocí databáze MySQL