我的记忆很糟糕.每当我在Oracle中执行CONNECT BY查询时 - 我的意思是每一次 - 我都要努力思考,通常通过试错来解决PRIOR应该去哪个参数.
我不知道为什么我不记得 - 但我没有.
有没有人有一个方便的记忆助记符,所以我永远记得?
例如:
走下来,从一个节点的树-很明显,我不得不看这件事:) -你做这样的事情:
select
*
from
node
connect by
prior node_id = parent_node_id
start with
node_id = 1
Run Code Online (Sandbox Code Playgroud)
所以 - 我从node_id1 开始(分支的顶部),查询查找parent_node_id= 1的所有节点,然后迭代到树的底部.
要向上移动树,先前对父进行:
select
*
from
node
connect by
node_id = prior parent_node_id
start with
node_id = 10
Run Code Online (Sandbox Code Playgroud)
因此,从某个分支开始(node_id = 10在本例中)Oracle首先获取所有节点,其中所有节点parent_node_id与node_id10的节点相同.
编辑:我仍然错了,所以我想添加一个澄清的编辑来扩展已接受的答案 - 这是我现在记得的方式:
select
*
from
node
connect by …Run Code Online (Sandbox Code Playgroud)