簡體   English   中英

PostgreSQL-在Oracle中使用'開始於'和'連接依據'遷移查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM