假设我有两个表查找子: 第一个被命名为sales
,并有一个名为product
和quantity
第二个被命名为nomenclature
,并有一个名为compound
和component
两列两列。满足一个specefic标准,ORACLE
每个compound
能有几个components
每component
可能本身就是一个compound
几个components
这使得第二个表的层次结构。 让我们举个例子如下表:
TABLE : SALES
PRODUCT - QUANTITY
P1 - 200
P2 - 300
F3 - 400
P5 - 500
TABLE : NOMENCLATURE
COMPOUND - COMPONENT
P1 - A1
P1 - B2
P2 - D4
A1 - F6
B2 - Q7
D4 - F8
Q7 - F9
F9 - H10
P3 - F11
我想找到的每一行中SALES.PRODUCT
在其层次结构的每个组件以F开头,并返回它们和/或如果产品本身与F或开始返回其自身否则忽略该行。最后的结果应该是这样的:
PRODUCT - QUANTITY - COMPONENT
P1 - 200 - F6
P1 - 200 - F9
P2 - 300 - F8
F3 - 400 - F3
F3 - 400 - F11
(因为P5被忽略不以F开始,不具有以f开头的子女)
如何做到获得这一结果PL/SQL(Oracle)的最有效的方式(命名法实际上有超过50万行)
你尝试过这么远吗?你确定你的意思是PL/SQL,而不是简单的SQL? – sstan
如何获得输出的最后两行? 'F11'与'P3'不匹配'F3'并且没有'F3'分量。 – MT0
您可以尝试让您的示例输出反映在您给我们的示例表上吗?这将有助于更好地关联表格。你是说这个产品是一种化合物吗? – CodyMR