我想申请页面或限制CTE的记录,但不是在它的方式,一般建议这样SQL - 寻呼递归CTE而不是在传统的方式
;WITH children AS
(
SELECT Item, Parent
FROM #TempHeirarchy
UNION ALL
SELECT e.Item, e.Parent
FROM #TempHeirarchy e
INNER JOIN children e2
ON e.Parent = e2.Item
)
select * into #TempFinal
from (select row_number() over(order by parent asc) as RowNumber, * from children) t
where t.RowNumber between 1 and 10
但这种方式是先申请递归到所有记录,然后应用分页,因此即使我仅获取10条记录,也需要很长时间才能完成此操作。
是不是有什么办法,我可以完全停止递归时CTE解析的记录数达到10个记录?
如果这是不可能的,那么有没有任何其他方式在那里我可以生成家长儿童的数据,当它到达页面大小停止?
我没有看到第一个选择的位置或过滤条件。 –
我没有任何条件。如果我在第一个查询本身限制记录,它不会获取实际水平 –
那么如何确定每个组的最顶级父项?根据定义,层次结构有一个起点。 – xQbert