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;