SQL Server sử dụng biểu thức bảng phổ biến (Câu lệnh WITH) để đạt được điều tương tự (xem Truy vấn đệ quy sử dụng biểu thức bảng thông dụng).
Loại truy vấn này cũng có thể được sử dụng trong Oracle (bắt đầu bằng 11g nếu tôi không nhầm).
Truy vấn kết quả phức tạp hơn:
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;