[英]PostgreSQL - migrate a query with 'start with' and 'connect by' in oracle
我在oracle中有以下查詢。 我想將其轉換為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
共同映射,而user_id
通常是integer
類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.