我有以下表格条目:
Col1 | Col2
------------------
3RDT | 3R9H
3R9H |
3R9J | 3RDT
3R9J | 3R9H
3HHA | 3ABC
3XXZ | 3HHA
我有一个价值3R9J
.现在我想要 Col1 具有该值的所有记录,在本例中为记录 3 和 4。
现在我获取此记录的 Col2 值(3RDT
和 3R9H
),并将其视为我的新 Col1 值,以获取具有 Col1 值3RDT
或3R9H
的所有记录。
这应该递归完成。此外,它还应该选择另一个方向的所有记录。如果我从 Col1 的3RDT
开始,我会得到 Col2 3RDT
(3) 的记录,然后我有 Col1 的3R9J
,并获取我3R9J
为 Col1 值的所有记录。
上面示例中的预期输出数据应该是前 4 条记录。
如果我
正确理解了您的问题,则此查询将完成这项工作。
SQLFiddle
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
导致每行显示一次。