2

私はオラクルで次のクエリを持っています。PostgreSQL形式に変換したい。誰かがこれで私を助けてくれますか、

SELECT user_id, user_name, reports_to, position 
FROM   pr_operators
START WITH reports_to = 'dpercival'
CONNECT BY PRIOR user_id = reports_to;
4

1 に答える 1

5

このようなものがうまくいくはずです(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ます。

于 2014-06-04T13:46:35.317 に答える