私はオラクルで次のクエリを持っています。PostgreSQL形式に変換したい。誰かがこれで私を助けてくれますか、
SELECT user_id, user_name, reports_to, position
FROM pr_operators
START WITH reports_to = 'dpercival'
CONNECT BY PRIOR user_id = reports_to;
私はオラクルで次のクエリを持っています。PostgreSQL形式に変換したい。誰かがこれで私を助けてくれますか、
SELECT user_id, user_name, reports_to, position
FROM pr_operators
START WITH reports_to = 'dpercival'
CONNECT BY PRIOR user_id = reports_to;
このようなものがうまくいくはずです(SQL Fiddle):
WITH RECURSIVE q AS (
SELECT po.user_id,po.user_name,po.reports_to,po.position
FROM pr_operators po
WHERE po.reports_to = 'dpercival'
UNION ALL
SELECT po.user_id,po.user_name,po.reports_to,po.position
FROM pr_operators po
JOIN q ON q.user_id=po.reports_to
)
SELECT * FROM q;
docs で再帰的 CTE の詳細を読むことができます。
注:あなたのデザインは奇妙に見えます-reports_to
文字列リテラルが含まれていますが、それはuser_id
典型的には型であると比較されていinteger
ます。