sql >> Database >  >> RDS >> Oracle

CONNECT BY of hiërarchische queries in RDBMS anders dan Oracle

SQL Server gebruikt algemene tabeluitdrukkingen (MET statement) om hetzelfde te bereiken (zie Recursieve zoekopdrachten met gemeenschappelijke tabeluitdrukkingen).

Dit soort query kan ook in Oracle worden gebruikt (beginnend met 11g als ik me niet vergis).

De resulterende vraag is complexer:

WITH emp(employee_id, manager_id, job_id, last_name, lvl)
AS (
    SELECT e.employee_id, e.manager_id, e.job_id, e.last_name, 1 lvl
    FROM employees e
    WHERE job_id = 'AD_VP'
    UNION ALL
    SELECT e.employee_id, e.manager_id, e.job_id, e.last_name, r.lvl + 1 lvl
    FROM employees e
    JOIN emp r ON r.employee_id = e.manager_id
)
SELECT LPAD(' ', 2 * (lvl-1)) || last_name org_chart,
    employee_id, manager_id, job_id
FROM emp;


  1. java - array doorgeven in oracle opgeslagen procedure

  2. ODBC-query op MS SQL Server die de eerste 255 tekens alleen retourneert in PHP PDO (FreeTDS)

  3. Postgresql-adapter (pg):kon geen verbinding maken met de server

  4. Krijg laatste insert-ID na een voorbereide insert met PDO