17,377
社区成员
发帖
与我相关
我的任务
分享
WITH T1 AS
(SELECT 'A' ID, NULL PID
FROM DUAL
UNION ALL
SELECT 'B' ID, 'A' PID
FROM DUAL
UNION ALL
SELECT 'C' ID, 'B' PID
FROM DUAL
UNION ALL
SELECT 'D' ID, 'C' PID
FROM DUAL)
SELECT A.ID
FROM T1 A
WHERE CONNECT_BY_ISLEAF = 1
START WITH A.ID = 'A'
CONNECT BY PRIOR A.ID = A.PID;
[/quote]
这个还有其他办法吗? 因为,这个是审批权限的,不同的审批单 他的授权代码不一样,而且他也不一定就是从A到D的授权,如果是A到Z的话 那是不是要写很多union?
[/quote]
这个是可以的能得到一个D,是不是就说明连接没有问题?WITH T1 AS
(SELECT 'A' ID, NULL PID
FROM DUAL
UNION ALL
SELECT 'B' ID, 'A' PID
FROM DUAL
UNION ALL
SELECT 'C' ID, 'B' PID
FROM DUAL
UNION ALL
SELECT 'D' ID, 'C' PID
FROM DUAL)
SELECT A.ID
FROM T1 A
WHERE CONNECT_BY_ISLEAF = 1
START WITH A.ID = 'A'
CONNECT BY PRIOR A.ID = A.PID;
[/quote]
这个还有其他办法吗? 因为,这个是审批权限的,不同的审批单 他的授权代码不一样,而且他也不一定就是从A到D的授权,如果是A到Z的话 那是不是要写很多union?
[/quote]这个union all只是他自己写的临时测试表[/quote]
哥们,还是你了解我[/quote]SELECT DISTINCT a.AUT_STATNEW
FROM R5AUTH a
where AUT_ENTITY='E'
START WITH a.AUT_STATUS ='A'
CONNECT BY a.AUT_STATUS = PRIOR a.AUT_STATNEW
AND LEVEL = 1
WITH T1 AS
(SELECT 'A' ID, NULL PID
FROM DUAL
UNION ALL
SELECT 'B' ID, 'A' PID
FROM DUAL
UNION ALL
SELECT 'C' ID, 'B' PID
FROM DUAL
UNION ALL
SELECT 'D' ID, 'C' PID
FROM DUAL)
SELECT A.ID
FROM T1 A
WHERE CONNECT_BY_ISLEAF = 1
START WITH A.ID = 'A'
CONNECT BY PRIOR A.ID = A.PID;
[/quote]
这个还有其他办法吗? 因为,这个是审批权限的,不同的审批单 他的授权代码不一样,而且他也不一定就是从A到D的授权,如果是A到Z的话 那是不是要写很多union?
[/quote]这个union all只是他自己写的临时测试表[/quote]
哥们,还是你了解我WITH T1 AS
(SELECT 'A' ID, NULL PID
FROM DUAL
UNION ALL
SELECT 'B' ID, 'A' PID
FROM DUAL
UNION ALL
SELECT 'C' ID, 'B' PID
FROM DUAL
UNION ALL
SELECT 'D' ID, 'C' PID
FROM DUAL)
SELECT A.ID
FROM T1 A
WHERE CONNECT_BY_ISLEAF = 1
START WITH A.ID = 'A'
CONNECT BY PRIOR A.ID = A.PID;
[/quote]
这个还有其他办法吗? 因为,这个是审批权限的,不同的审批单 他的授权代码不一样,而且他也不一定就是从A到D的授权,如果是A到Z的话 那是不是要写很多union?
[/quote]这个union all只是他自己写的临时测试表WITH T1 AS
(SELECT 'A' ID, NULL PID
FROM DUAL
UNION ALL
SELECT 'B' ID, 'A' PID
FROM DUAL
UNION ALL
SELECT 'C' ID, 'B' PID
FROM DUAL
UNION ALL
SELECT 'D' ID, 'C' PID
FROM DUAL)
SELECT A.ID
FROM T1 A
WHERE CONNECT_BY_ISLEAF = 1
START WITH A.ID = 'A'
CONNECT BY PRIOR A.ID = A.PID;
[/quote]
这个还有其他办法吗? 因为,这个是审批权限的,不同的审批单 他的授权代码不一样,而且他也不一定就是从A到D的授权,如果是A到Z的话 那是不是要写很多union?
WITH T1 AS
(SELECT 'A' ID, NULL PID
FROM DUAL
UNION ALL
SELECT 'B' ID, 'A' PID
FROM DUAL
UNION ALL
SELECT 'C' ID, 'B' PID
FROM DUAL
UNION ALL
SELECT 'D' ID, 'C' PID
FROM DUAL)
SELECT A.ID
FROM T1 A
WHERE CONNECT_BY_ISLEAF = 1
START WITH A.ID = 'A'
CONNECT BY PRIOR A.ID = A.PID;
SELECT DISTINCT a.AUT_STATNEW
FROM R5AUTH a
where AUT_ENTITY='E'
AND CONNECT_BY_ISLEAF= a.AUT_STATUS
START WITH a.AUT_STATUS ='A'
CONNECT BY a.AUT_STATUS = PRIOR a.AUT_STATNEW