[英]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.