WITH RECURSIVE 上司部下(上司,部下)
AS ( SELECT 上司社員番号,社員番号
FROM 社員
WHERE 上司社員番号 IS NOT NULL
UNION
SELECT 上司部下.上司,社員.社員番号
FROM 社員,上司部下
WHERE 社員.上司社員番号 =上司部下.部下 )
SELECT * FROM 上司部下
[実行結果]
上司 | 部下
------+------
008 | 006
006 | 005
005 | 004
005 | 003
003 | 002
003 | 001
008 | 005
006 | 003
006 | 004
005 | 001
005 | 002
008 | 003
008 | 004
006 | 001
006 | 002
008 | 001
008 | 002
(17 行)