这是一个层次结构的表,直到根x
<表类="年代桌子">父 子 tbody><45 3 aa aa b55 ee e x bbb bbbbb bb td> eee ee x ccc ccc cc cc c x eee x ddd ddd dd <dd/td> d 表>
这个问题对我来说也有点困惑,但这里有一种可能性来完成它(因为我已经得到了它)。基本上,它是用复杂的order by子句一步一步递归来得到你想要的结果。问候…
WITH
fltr AS -- Filtering table
(
Select 'a' "PARENT", '1' "CHILD" From DUAL UNION ALL
Select 'a' "PARENT", '12' "CHILD" From DUAL UNION ALL
Select 'b' "PARENT", '3' "CHILD" From DUAL UNION ALL
Select 'c' "PARENT", '4' "CHILD" From DUAL UNION ALL
Select 'd' "PARENT", '5' "CHILD" From DUAL
),
nodes AS
(
Select 'a' "PARENT", '45' "CHILD" From DUAL UNION ALL
Select 'aaa' "PARENT", 'aa' "CHILD" From DUAL UNION ALL
Select 'x' "PARENT", 'aaa' "CHILD" From DUAL UNION ALL
Select 'aa' "PARENT", 'a' "CHILD" From DUAL UNION ALL
Select 'b' "PARENT", '55' "CHILD" From DUAL UNION ALL
Select 'ee' "PARENT", 'e' "CHILD" From DUAL UNION ALL
Select 'x' "PARENT", 'bbb' "CHILD" From DUAL UNION ALL
Select 'bbb' "PARENT", 'bb' "CHILD" From DUAL UNION ALL
Select 'bb' "PARENT", 'b' "CHILD" From DUAL UNION ALL
Select 'eee' "PARENT", 'ee' "CHILD" From DUAL UNION ALL
Select 'x' "PARENT", 'ccc' "CHILD" From DUAL UNION ALL
Select 'ccc' "PARENT", 'cc' "CHILD" From DUAL UNION ALL
Select 'cc' "PARENT", 'c' "CHILD" From DUAL UNION ALL
Select 'x' "PARENT", 'eee' "CHILD" From DUAL UNION ALL
Select 'x' "PARENT", 'ddd' "CHILD" From DUAL UNION ALL
Select 'ddd' "PARENT", 'dd' "CHILD" From DUAL UNION ALL
Select 'dd' "PARENT", 'd' "CHILD" From DUAL
),
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
end_level AS
(
Select Distinct
f.PARENT "PARENT",
f.CHILD "CHILD"
From
fltr f
Left Join
nodes n ON(1=1)
Where
n.PARENT = 'x'
),
midend AS
(
SELECT
n.PARENT,
n.CHILD
FROM
end_level e
LEFT JOIN
nodes n ON(n.CHILD = e.PARENT)
),
midroot AS
(
SELECT
n.PARENT,
n.CHILD
FROM
midend e
LEFT JOIN
nodes n ON(n.CHILD = e.PARENT)
)
SELECT DISTINCT
PARENT,
CHILD
FROM
(
SELECT PARENT, CHILD FROM NODES WHERE PARENT = 'x' And SubStr(CHILD, 1, 1) IN(SELECT PARENT FROM fltr) UNION ALL
SELECT PARENT, CHILD FROM midroot UNION ALL
SELECT PARENT, CHILD FROM midend UNION ALL
SELECT PARENT, CHILD FROM end_level
)
ORDER BY
CASE
WHEN SubStr(PARENT, 1, 1) = 'x'
THEN LPAD(SubStr(CHILD, 1, 1), 2, SubStr(CHILD, 1, 1))
WHEN SubStr(PARENT, 1, 1) = SubStr(CHILD, 1, 1)
THEN LPAD(SubStr(CHILD, 1, 1), 3, SubStr(CHILD, 1, 1)) || To_Char(10 - Length(CHILD))
WHEN SubStr(PARENT, 1, 1) = SubStr(CHILD, 1, 1)
THEN LPAD(SubStr(CHILD, 1, 1), 4, SubStr(CHILD, 1, 1)) || CHILD
ELSE
LPAD(SubStr(PARENT, 1, 1), 5, SubStr(PARENT, 1, 1)) || CHILD
END
--
-- R e s u l t
--
-- PARENT CHILD
-- ------ -----
-- x aaa
-- aaa aa
-- aa a
-- a 1
-- a 12
-- x bbb
-- bbb bb
-- bb b
-- b 3
-- x ccc
-- ccc cc
-- cc c
-- c 4
-- x ddd
-- ddd dd
-- dd d
-- d 5
它可以以同样的方式深入,唯一的限制是根的固定值'x',但它在问题中明确地陈述了,所以…
相关内容
- 我有一个对象,称之为 Obj1,需要将 Obj1 中的值与另一个对象 obj2"键值"对进行比较,并返回键(如果存在)
- 如何检查我的数组的值是否存在于另一个对象?
- 如何使用python 3.7.5查找另一个CSV文件中不存在的行
- 使用来自另一个Apps脚本的参数调用Apps脚本API可执行函数存在问题
- r语言 - 如何根据规则过滤数据:如果此值存在,则过滤它,如果不是 ->过滤另一个
- 错误:包存在于另一个模块中:Intellij中的com.company. function .apimodule.<
- LINQ, EF Core:从一个列表中取出存在于另一个列表中的记录
- 在另一个列表中的列表中搜索元素,并检查每个元素是否存在
- 检查来自一个数据框架的文本是否存在于另一个数据框架Python中
- AlreadyExistsError:另一个具有相同名称的度量已经存在.我应该删除整个keras文件夹/卸载keras吗
- 是否有一种方法来激活存在于另一个类中的按钮?
- 检查一个元组列表中的项目是否在 python 中的另一个元组中不存在的更简单方法
- Google工作表-显示数据到另一个选项卡如果存在
- 检查一个列表中的任何值是否存在于另一个列表中(最快的解决方案)
- 在async/await中生成一个新的Json,指定从另一个存在的Json中选择字段
- Mongodb投影排除我的一个字段时,另一个存在
- Sqlite将数据从临时表复制到另一个存在冲突的临时表
- 如何通过条件从数据库中排列 - 另一个表中的另一个存在
- 如果另一个存在jQuery,则隐藏Div
- SWIFT将值传递给另一个存在的ViewController
最新更新
- 从CMD或批处理文件中禁用"Notify me when the clock changes"设置
- 在Dockerfile中设置——net=host ?
- 如何在React中将arrayBuffer转换为JSON
- 是否有可能将html响应转换为json在扑动?
- 快速过滤numpy数组值的方法
- C保存字符串的数组列表
- 需要minio film配置建议
- 如何应用CSS字体大小"relative to what it would be originally"?
- 该应用程序在个人帐户中未绑定脚本时被阻止错误
- 将原始查询转换为django orm
- 如何从出现次数和值的列表中创建一个新列表
- 使用Julia中的Julia Broadcasting根据数组的索引计算数组值
- 在javascript中使用条件更新嵌套数组
- for循环多个条件
- 将第一列中的名称行转换为r中的列
- Nx张量的映射切片
- Dotnet Core Azure功能(隔离进程)如何加载应用程序.每个环境的Json
- Discordjs不发送消息
- 边框在css中不显示
- Python pandas中的深度嵌套JSON规范化
- 如何在JSON模式中从正确的对象中选择特定的字段
- 我可以在REST API中直接通过POST发送电话号码吗?
- "onPressed: () {}"在颤振中不起作用
- FbLitho在RecyclerCollectionComponent中重复视图,即使加载了新部分
- Spring Data JPA对多对多关系的查询返回所有记录,而不是匹配的记录
- 在使用const断言递归时更改函数参数以接受子函数
- 我们可以通过调用Power BI Service/Workspace的export功能导出嵌入式Power BI报表的P
- 如何使用Azure服务近乎实时地收听GCP pub/sub
- 如何一次只显示一个组中的几个精灵
- 在移动平均线的股票图表中增加成交量
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium