[英]Oracle 12c: Multiple functions in a SELECT statement's WITH clause
[英]WITH Clause with union all - Oracle 12c
谁能解释以下查询?
with子句查询别名recursiveBOM
是否在查询中使用? UNION ALL有什么用吗?
WITH recursiveBOM
(assembly_id, assembly_name, parent_assembly) AS
(SELECT parent.assembly_id,
parent.assembly_name,
parent.parent_assembly
FROM bill_of_materials parent
WHERE parent.assembly_id=100
UNION ALL
SELECT child.assembly_id,
child.assembly_name,
child.parent_assembly
FROM recursiveBOM parent, bill_of_materials child
WHERE child.parent_assembly = parent.assembly_id)
SELECT assembly_id, parent_assembly, assembly_name
FROM recursiveBOM;
WITH recursiveBOM
AS
(
SELECT parent.assembly_id,
parent.assembly_name,
parent.parent_assembly
FROM bill_of_materials parent
WHERE parent.assembly_id=100
)
recursiveBOM2 as
(
SELECT child.assembly_id,
child.assembly_name,
child.parent_assembly
FROM bill_of_materials child
)
SELECT recursiveBOm.assembly_id, recursiveBOm.parent_assembly, recursiveBOm.assembly_name
FROM recursiveBOm
UNION ALL
SELECT recursiveBOM2.assembly_id, recursiveBOM2.parent_assembly, recursiveBOM2.assembly_name
FROM recursiveBOm, recursiveBOm2
WHERE recursiveBOm.assembly_id = recursiveBOM2.parent_assembly
;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.