我有下表,它實現了一個鏈表。我想查詢以rate_sequence_id開頭的1,並獲得鏈接到它的下一條記錄,在這種情況下爲30。所以查詢應該返回兩行(1的rate_sequence_id和30)。在鏈接列表上的Oracle分層查詢表
但是,以下查詢要麼只返回1行,要麼會返回「循環」錯誤,具體取決於CONNECT BY子句中哪個列先到達。
正在嘗試用這些數據做什麼?
SELECT * FROM TEST
CONNECT BY PRIOR RATE_SEQUENCE_ID = NEXT_RATE
START WITH RATE_SEQUENCE_ID = 1
測試數據:
CREATE TABLE TEST (
RATE_SEQUENCE_ID NUMBER(10,0),
NEXT_RATE NUMBER(10,0),
DURATION NUMBER,
RATE NUMBER
);
Insert into TEST (RATE_SEQUENCE_ID,NEXT_RATE,DURATION,RATE) values (50,51,28,0.99);
Insert into TEST (RATE_SEQUENCE_ID,NEXT_RATE,DURATION,RATE) values (51,51,112,9.99);
Insert into TEST (RATE_SEQUENCE_ID,NEXT_RATE,DURATION,RATE) values (1,30,28,0.99);
Insert into TEST (RATE_SEQUENCE_ID,NEXT_RATE,DURATION,RATE) values (30,30,112,14.99);
Insert into TEST (RATE_SEQUENCE_ID,NEXT_RATE,DURATION,RATE) values (0,0,0,0);
Insert into TEST (RATE_SEQUENCE_ID,NEXT_RATE,DURATION,RATE) values (31,0,30,0);
哪個版本的數據庫?分層查詢是Oracle在以後的版本中添加了大量功能的一個領域。 – APC