我有以下表格条目:
Col1 | Col2
------------------
3RDT | 3R9H
3R9H |
3R9J | 3RDT
3R9J | 3R9H
3HHA | 3ABC
3XXZ | 3HHA
我有一个值3R9J
。
现在我想要Col1具有该值的所有记录,在本例中为记录3和4.
现在我获取此记录的Col2值(3RDT
和3R9H
)并将其视为我的新Col1值,以获取具有Col1值3RDT
或{{1的所有记录}}。
这应该以递归方式完成。此外,它还应该选择另一个方向的所有记录。如果我以3R9H
开头为Col1,我会得到Col2为3RDT
(3)的记录,然后我为Col1提供3RDT
并获取我3R9J
所有的记录Col1值。
上面示例中的预期输出数据应该是前4个记录。
答案 0 :(得分:1)
如果我正确理解了您的问题,那么此查询将完成此任务。
select *
from test
connect by col1 = prior col2
start with col1 = '3R9J'
union
select *
from test
connect by prior col1 = col2
start with col1 = '3RDT';
请注意union
导致每行显示一次。