Sql 搜索由SYS\U CONNECT\U by\U在CONNECT by PREVIOR查询中创建的路径

Sql 搜索由SYS\U CONNECT\U by\U在CONNECT by PREVIOR查询中创建的路径,sql,oracle,connect-by,Sql,Oracle,Connect By,我使用“按查询连接”来显示组上的分层组,在这个页面上,我有一个用于选择父组的组合框。但我想隐藏包含当前正在编辑的组的所有行 这是我的桌子 GROUPS ------------- GROUP_ID, GROUP_NAME, GROUP_TYPE, PARENT_ID 我的第一个问题是, SELECT * FROM (SELECT GROUP_ID, LPAD('-',LEVEL,'-')|| GROUP_NAME GROUP_NAME, SYS_CONNECT_

我使用“按查询连接”来显示组上的分层组,在这个页面上,我有一个用于选择父组的组合框。但我想隐藏包含当前正在编辑的组的所有行

这是我的桌子

GROUPS
-------------
GROUP_ID, GROUP_NAME, GROUP_TYPE, PARENT_ID
我的第一个问题是,

SELECT * FROM 
(SELECT  
    GROUP_ID,
    LPAD('-',LEVEL,'-')|| GROUP_NAME GROUP_NAME,
     SYS_CONNECT_BY_PATH(GROUP_NAME, '->')  GROUP_NAME_PATH 
FROM  GROUPS
    START WITH PARENT_ID IS NULL AND TYPE='G'
    CONNECT BY PRIOR GROUP_ID=PARENT_ID)
这一结果已公布

27  -Generel Manager    ->Generel Manager,
28  --Project Manager   ->Generel Manager->Project Manager,
24  ---System Administrator ->Generel Manager->Project Manager->System Administrator
25  ---Software Developer   ->Generel Manager->Project Manager->Software Developer
26  ----Intern          ->Generel Manager->Project Manager->Software Developer->Intern
比如,

在第
Editgroup.aspx?group_id=24页上
它显示了所有这些行,但我想隐藏包含GROUP_ID=24的所有行路径
因为组不能是selfchild

我找到了这个查询的临时解决方案

SELECT * FROM 
(SELECT  
    GROUP_ID,
    LPAD('-',LEVEL,'-')|| GROUP_NAME GROUP_NAME,
     SYS_CONNECT_BY_PATH(GROUP_NAME, '->') || ',' GROUP_NAME_PATH  
FROM  GROUPS
    START WITH PARENT_ID IS NULL AND GROUP_TYPE='G'
    CONNECT BY PRIOR GROUP_ID=PARENT_ID)
     WHERE  HIYERARSI_ID NOT LIKE '%,24,%'
24来自url

我认为,当我们获得大数据时,这将不是一个有效的解决方案


如何以更智能的方式检测路径是否包含此id?

下面的代码将删除组号24及其所有子项:

SELECT   
GROUP_ID, 
LPAD('-',LEVEL,'-')|| GROUP_NAME GROUP_NAME, 
 SYS_CONNECT_BY_PATH(GROUP_NAME, '->')  GROUP_NAME_PATH  
FROM  GROUPS 
START WITH PARENT_ID IS NULL AND TYPE='G' 
AND GROUP_ID <> 24 /* added condition */
CONNECT BY PRIOR GROUP_ID=PARENT_ID 
AND GROUP_ID <> 24 /* added condition */
选择
组ID,
LPAD(“-”,级别“-”)| |组名称组名称,
系统连接路径(组名称“->”)组名称路径
来自团体
以父项开头的\u ID为NULL,类型为='G'
和组ID 24/*添加的条件*/
按先前的组连接\u ID=父组\u ID
和组ID 24/*添加的条件*/

重新编写,只找到以Child\u id=24或类似的开头的父母,怎么样?