DECLARE
@s VARCHAR (MAX) SELECT
@s = ',' + CAST (kindid AS VARCHAR(20)) + ''
FROM
treetable
WHERE
kindid = '25'
WHILE @@ROWCOUNT > 0 SELECT
@s =@s + ',' + CAST (kindid AS VARCHAR)
FROM
treetable
WHERE
charindex(
',' + CAST (kindid AS VARCHAR) + ',' ,@s + ','
) = 0
AND charindex(
',' + CAST (parentkindid AS VARCHAR) + ',' ,@s + ','
) > 0 SELECT
kindid,
kindname,
parentkindid
FROM
treetable
WHERE
charindex(
',' + CAST (kindid AS VARCHAR) + ',' ,@s + ','
) > 0
sqlserver查询树表某个节点所有的子节点
最新推荐文章于 2026-05-19 07:06:20 发布
本文介绍了一种使用 SQL Server 的 WHILE 循环和 CHARINDEX 函数来递归地获取树状结构数据的方法。通过构建字符串来避免重复选取已访问的数据节点,并展示了如何从特定节点开始遍历整个子树。


910

被折叠的 条评论
为什么被折叠?



