Postgres में पदानुक्रम संबंधी क्वेरी
नहीं हैं . नहीं CONNECT BY
, इसलिए भी कोई LEVEL
. नहीं है ।
अतिरिक्त मॉड्यूल टेबलफंक फ़ंक्शन प्रदान करता है connectby()
लगभग वही कर रहा है। देखें:
- Oracle के CONNECT BY ... START WITH? के समकक्ष PostgreSQL सिंटैक्स क्या है?
या आप मानक recursive CTE
के साथ समान कार्य कर सकते हैं और एक level
कॉलम जो हर रिकर्सन के साथ बढ़ता है।
Oracle में यह क्वेरी:
SELECT employee_id, last_name, manager_id, LEVEL
FROM employees
CONNECT BY PRIOR employee_id = manager_id;
.. इस पुनरावर्ती CTE में Postgres में अनुवाद किया जा सकता है:
WITH RECURSIVE cte AS (
SELECT employee_id, last_name, manager_id, 1 AS level
FROM employees
UNION ALL
SELECT e.employee_id, e.last_name, e.manager_id, c.level + 1
FROM cte c
JOIN employees e ON e.manager_id = c.employee_id
)
SELECT *
FROM cte;