假設我有兩個表查找子: 第一個被命名爲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