Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oraclesql中的分层查询_Sql_Oracle_Hierarchy - Fatal编程技术网

oraclesql中的分层查询

oraclesql中的分层查询,sql,oracle,hierarchy,Sql,Oracle,Hierarchy,我有这样的数据: 从上表中,我尝试使用CONNECTBY子句编写SQL,以获得如下层次结构 MAINCONTENT SPECIAL RIDGE SALESCONTENT ANOTHERONE RODGE SOMETHING ELSE ANOTHER ... 到目前为止,下面的SQL只显示了“MAINCONTENT”的所有子项,但我不想传递参数。下

我有这样的数据:

从上表中,我尝试使用CONNECTBY子句编写SQL,以获得如下层次结构

      MAINCONTENT

       SPECIAL
        RIDGE
         SALESCONTENT

       ANOTHERONE
        RODGE
         SOMETHING ELSE
          ANOTHER
        ...
到目前为止,下面的SQL只显示了“MAINCONTENT”的所有子项,但我不想传递参数。下面这个例子并没有向我展示孩子们的孩子们,这意味着它没有做递归

    select DISTINCT parent from  MYTABLE
    connect by prior CHILD = PARENT
    start with PARENT = 'MAINCONTENT';

您似乎只在电子表格中显示了部分数据,因此我不确定以下内容是否100%正确,但:

首先去掉间接链接(直接链接应该覆盖整个树),并为顶级记录创建额外的条目。然后应用分层子句

请尝试以下方法:

WITH mytable_normalized AS (
  SELECT parent, child
    FROM mytable
   WHERE direct_link = 'Y'
   UNION ALL
  SELECT null, parent
    FROM mytable
   MINUS
  SELECT null, child
    FROM mytable
)
SELECT lpad(' ', level*2) || child
  FROM mytable_normalized
CONNECT BY prior child = parent
 START WITH parent IS NULL;

@Barmar该链接是针对MySQL的,它没有真正显示如何使用
connectby
Oops,抱歉。我误以为它更通用。无论如何,你应该展示你的尝试,这样人们可以帮助你修复它。因此,这不是为了让其他人为您编写代码。