繁体   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