Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

CONNECT BY atau kueri hierarkis di RDBMS selain Oracle

SQL Server menggunakan ekspresi tabel umum (DENGAN pernyataan) untuk mencapai hal yang sama (lihat Kueri Rekursif Menggunakan Ekspresi Tabel Umum).

Kueri semacam ini juga dapat digunakan di Oracle (dimulai dengan 11g jika saya tidak salah).

Kueri yang dihasilkan lebih kompleks:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. orator

  2. Kelucuan subquery Oracle

  3. Kueri beberapa NEXTVAL dari urutan dalam satu pernyataan

  4. Urutan hibernasi di Oracle, @GeneratedValue(strategy =GenerationType.AUTO)

  5. Cara mencetak beberapa laporan dengan barcode \ atau beberapa barcode dalam satu laporan