正文
sqlserver树查询,sql 树
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
sqlserver查询树形结构的所有子节点
sqlserver查询树形结构的所有子节点
用标准sql的with实现递归查询(sql2005以上肯定支持,sql2000不清楚是否支持):
with subqry(id,name,pid) as (
select id,name,pid from test1 where id = 5
union all
select test1.id,test1.name,test1.pid from test1,subqry
where test1.pid = subqry.id
)
select * from subqry;
sqlserver遍历树形目录
使用sqlserver递推查询,可以直接查询出来。
参考资料:
WITH lmenu(nav_id,nav_name,nav_parentid,level) as
(
SELECT nav_id,nav_name,nav_parentid,0 level FROM nav nav_parentid=0
UNION ALL
SELECT A.nav_id, A.nav_name,a.nav_parentid, b.level+1 FROM gs_nav A,lmenu b where a.nav_parentid= b.nav_id and nav_id = 10
)
SELECT * from lmenu
具体SQL语句还需要自己验证一下,上面的自己看着乱写的。
sqlserver2008树查询,急急急,求大神教育
你这写法是正确的,至少递归的数据已达到.只是显示方式不一样.
加个记录字段,并按记录字段排序即可完成以下效果:
--修改如下:
WITH rec(warecode,waresupercode,waerName,sort)
as
(
select warecode,waresupercode,waerName,warecode from DIC_WARE dw where dw.waresupercode IS NULL
UNION all
SELECT warecode,waresupercode,waerName,sort+'| '+warecode
from DIC_WARE a ,rec b on a.waresupercode=b.warecode
)
SELECT warecode,waresupercode,waerName
FROM rec order by sort
GO
测试数据效果图下:
希望能帮到你!