[英]Hierarchical Query in Oracle SQL
我有这样的数据:
从上表中,我试图使用connect by子句编写一个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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.