我有這個表命名爲"AFP"
:層次查詢兩個表
ID || NAME || AFP_FUSION_ID
10 || afp1 ||
20 || afp2 ||
30 || afp3 || 90
40 || afp4 || 30
50 || afp5 || 30
90 || afp6 ||
其中"ID" is a primary key
和"AFP_FUSION_ID" is a foreign key
是同一個表引用。
另外我還這個表稱爲"Registers"
:
Full Name || AFP_DESTINO
JOHN || 10
PETER || 20
ELENA || 10
MARCO || 90
DANIELA || 30
FELIPE || 40
其中
AFP_DESTINO is a foreign key that references to AFP.ID
我必須創建具有類似參數的數(10,20,30,40的功能, 50或90)並且必須返回相應的信息。
- 如果函數收到'10',函數必須返回數據
from "REGISTERS" where AFP_DESTINO = 10
。 - 如果收到'30'的函數必須返回數據
where AFP_DESTINO = 30, 40 or 50
。 - 如果函數收到'90',必須返回數據
where AFP_DESTINO = 90, 30, 40, 50
。
我必須使用Oracle,我有這樣的:
select * from (select * from registers
full outer join afp
on registers.AFP_DESTINO = afp.ID) where afp_destino = 30 or afp_fusion_id = 30
(我來完善這個,後來轉變爲功能)。問題是如果我用'30'代替'90',當afp_destino = 40 or 50
我不會有數據。
有人可以幫我嗎?
UPDATE:
我對解決這個驗證碼:
select * from (select * from registers
full outer join afp
on registers.AFP_DESTINO = afp.ID) connect by prior
afp_destino = afp_fusion_id start with afp_destino = 90
但會產生不一致,顯得更行。
歡迎來到Stack Overflow!這是一個網站,您可以提問問題並獲得有關您使用的軟件遇到的問題的答案,但這不是「爲我做作業」或「爲我工作」網站。當你提出一個問題時,你應該包括你寫的代碼,你得到的具體錯誤或程序產生的結果,以及你期望的結果的解釋。如果沒有這些,我們可以做很多事情來幫助你。請編輯您的問題以顯示您已完成的工作,並告訴我們代碼存在哪些問題。再次,歡迎來到Stack Overflow! –