数据库表有如下数据:
我们要使用递归从最后一级查询到顶级,那我们sql如何来写呢,使用WITH AS 来实现, 下面请看SQL:
WITH SUBQUERY AS (
SELECT A.*
FROM dbo.WZZ_BASE_GROUP A WITH (NOLOCK)
WHERE A.ID = 7
AND A.STATUS = 1
UNION ALL
SELECT A.*
FROM SUBQUERY,
dbo.WZZ_BASE_GROUP A WITH (NOLOCK)
WHERE SUBQUERY.PARENT_ID = A.ID
AND A.STATUS = 1
)
SELECT *
FROM SUBQUERY;
查询一下,我们看看结果:
是不是很简单就实现了。