递归查询
蓝色底色的字为个人喜欢的名字,根据喜好进行修改
递归查询:用于处理层次或树形结构的数据,可以帮助我们在单个查询中遍历这些结构,无论是向上追溯还是向下展开
WITH···AS···递归查询
WITH T(id,name,parentid)
AS (SELECT id,name,parentid
FROM test
UNION ALL
SELECT t2.id,t2.name,t2.parentid
FROM test t2
INNER JOIN T
ON T.id = t2.parentid)
SELECT * FROM T
查找所有的有父节点的数据
START WITH&CONNECT BY
SELECT id,name,parentid,LEVEL
FROM test
START WITH parentid = 0
CONNECT BY PRIOR id = parentid
查找从 parentid = 0 的数据开始,每个 parentid 等于上一个找到的数据的 id
START WITH 定义了递归的起点,而 CONNECT BY 定义了递归的条件。PRIOR 关键字用于引用前一次递归中的列
LEVEL 是 Oracle 数据库中的一个特殊伪列,用于表示当前记录在层次结构中的层级深度。根节点的 LEVEL 值为1,其子节点的 LEVEL 值为2,依此类推

浙公网安备 33010602011771号