我有下表实现了一个链表。我想从 rate_sequence_id 为 1 开始查询,并获取链接到它的下一条记录,在本例中为 30。所以查询应该返回两行(rate_sequence_id 为 1 和 30)。
但是,以下查询要么仅返回 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);