示例

WITH RECURSIVE org_hierarchy (ID, PARENT_ID, ORG_TYPE,ORG_NAME) AS (
    -- 基础查询:找到当前用户的直接上级部门
    SELECT 
       ID,
       PARENT_ID,
       ORG_TYPE,
       ORG_NAME
    FROM 
        SYS_ORG
    WHERE 
        ID = '10568de8e7023000bd1b769b638c806e'
    
    UNION ALL
    
    -- 递归部分:继续向上查找上级部门,直到找到公司
    SELECT 
       d.ID, 
       d.PARENT_ID, 
       d.ORG_TYPE,
       d.ORG_NAME
    FROM 
        org_hierarchy uh
    JOIN 
        SYS_ORG d ON uh.PARENT_ID = d.ID
    WHERE 
        d.ORG_TYPE = '1' and
        d.PARENT_ID  IS NOT NULL
),
org_hierarchy2(ID, PARENT_ID, ORG_TYPE,ORG_NAME) AS (

	SELECT ID, PARENT_ID, ORG_TYPE,ORG_NAME 
	FROM org_hierarchy
	WHERE ORG_TYPE = '1'

	UNION ALL
	
	 SELECT 
       d2.ID, 
       d2.PARENT_ID,
       d2.ORG_TYPE,
       d2.ORG_NAME
    FROM 
        org_hierarchy2 uh2
    JOIN 
        SYS_ORG d2 ON uh2.ID = d2.PARENT_ID
	
)
SELECT id FROM org_hierarchy2