select sys_user_id as "子ID",sys_user_name as "名称", sys_user_manager as "父ID" from pub_sys_user
WHERE 1=1
SELECT * FROM pub_sys_user
create table tb(id int, [Name] varchar(20),parentID int )
insert into tb
select 382 , '调度员岗位', -1
union all select 383 , '基础知识', 382
union all select 390 , '电工基础' , 383
union all select 1995 , 'test知识点' , 390
create function f_cid(@id int)
returns varchar(500)
as
begin
declare @t table(id sys_user_id,[sys_user_name] varchar(30),sys_user_manager int,lev int)
declare @lev int
set @lev=1
insert into @t select *,@lev from pub_sys_user where id=@id
while(@@rowcount>0)
begin
set @lev=@lev+1
insert into @t select a.sys_user_id,a.sys_user_name,a.@lev from pub_sys_user a,@t b
where a.parentid=b.id and b.lev=@lev-1
end
declare @cids varchar(500)
select @cids=isnull(@cids+',','')+ltrim(id) from @t order by lev
return @cids
end
go
drop function f_cid
drop proc test
--得到每个节点路径:
create proc test
@id int
as
set nocount off
select *,cast(' ' as varchar(50)) fullpath into #os from tb
DECLARE @i int,@j int ,@f int
set @f=390
set @i=0
set @j=1
select @i=max(parentid) from #os
update #os set fullpath=id
while @j <=@i
begin
update #os set fullpath=a.fullpath+','+ltrim(#os.id)
from #os inner join #os a on #os.parentid=a.id
where #os.parentid=@j
set @j=@j+1
end
select * from #os where #os.id=1995
go
--调用存储过程
exec test 1
分享到:
相关推荐
sql 查询 所有子节点 方法已经调试通过(sql-server 2005)
SQL Server 中递归查找子节点和父节点 在关系数据库管理系统中,特别是在 SQL Server 中,...通过创建函数 `f_getChild` 和 `f_getParent`,我们可以轻松地实现递归查找子节点和父节点,提高数据查询的效率和灵活性。
本文将深入探讨如何利用递归查询来获取子节点和父节点的信息。 一、查询当前部门下的所有子部门 在SQL Server中,可以使用Common Table Expression(CTE)结合递归来实现这个功能。`deptTab`是存储部门信息的表,...
2. **遍历队列**:在循环中,每次取出队列头部的节点,查询该节点的所有子节点,并将子节点加入队列。 3. **删除节点**:在每次取出节点时,同时删除该节点。 4. **重复步骤2和3**:直到队列为空,即所有相关子节点...
标题中的“根据子节点的金额向上汇总所有父节点的金额”是一个典型的树形结构数据处理问题,常见于组织架构、账目统计或者数据库层次结构的数据分析。这个问题涉及到的知识点包括但不限于: 1. **树形结构**:在...
-- 递归部分:找出所有子节点及其子节点 select t.deptid, t.parentid from jaf_dept_structure as t inner join cte as c on t.parentid = c.deptid ) ``` ##### 解析: - **基础情况**:首先,我们定义了基础...
在数据库管理和应用开发中,经常需要查询某一特定节点下的所有子节点信息。例如,在组织结构、产品分类等层级数据管理中,我们需要获取某个父级分类的所有子分类,包括直接子分类以及其所有的后代分类。本篇文章将...
- 通常采用Ajax技术,在用户点击某个节点时,通过Ajax异步请求服务器端接口获取子节点数据,然后更新TreeView控件。 - 这种方式可以避免整个页面的重新加载,提供更好的用户体验。 #### 三、选中父节点和子节点...
### SQL Server 存储层级数据实现无限级分类与左右值分类 ...通过合理设计数据表结构和利用存储过程,可以在SQL Server中实现快速检索、插入和删除节点及其子节点的操作,显著提高系统的响应速度和用户体验。
在给定的场景中,我们需要根据一个特定的节点ID查询出该节点及其所有子节点,并将这些结果存储在一个临时表中。以下是实现这一目标的详细步骤和相关知识点: 1. **CTE(公共表表达式)**: 公共表表达式(Common ...
如果数据有层级关系,可以通过递归遍历数据集,为每个父节点添加子节点。 5. **事件处理**:为了实现交互性,如点击节点时查询更多详细信息,你可以为TTreeView的OnClick事件编写处理程序。在事件处理程序中,可以...
本示例将深入探讨如何在SQL中处理这类数据,包括如何根据父节点查找所有子节点,以及如何指定子节点找出所有父节点。 首先,让我们假设有一个名为`employees`的表,它包含了员工的ID(`id`)、员工的名字(`name`)...
在MySQL中,实现树状所有子节点的查询并非像Oracle那样可以直接使用Hierarchical Queries和`CONNECT BY`语句。然而,尽管MySQL不直接支持这样的功能,我们仍然可以通过其他方法来达到相同的效果。以下将详细介绍几种...
特殊节点有QUERY节点和SubQUERY节点,QUERY节点是网图的开始节点,而SubQUERY节点是子查询的开始节点。网图中的每个节点都有其后继节点,例如,一个字段节点的后继节点是它所属的表格节点。 2. 图神经网络在SQL查询...
根据当前节点获取所有父节点信息(18代)SQL根据当前节点递归遍历获取所有父节点信息,短短的SQL可以解决复杂的问题
在数据库管理领域,SQL并行更新是一个常见的性能优化策略,特别是在处理大数据量或者复杂查询时。然而,这种并行执行模式也可能带来数据一致性问题,如标题所提的“SQL并行更新时丢失数据实例”。本篇文章将深入探讨...
总之,实现数据分层汇总交叉报表的关键在于理解数据的层次结构和汇总规则,并熟练运用SQL的高级查询特性,如WITH AS子句。通过合理的设计和编程,我们可以有效地满足管理人员对复杂报表的需求,提供清晰、准确的业务...
Axis 指明在文档中的搜索方向,例如,如果 Axis 等于 child,step 应考虑当前节点的所有子节点。NodeTest 表明对找到的 XML 节点的一个简单测试。Predicate 条件选择当前节点中的节点。 XQuery 和 XPath 查询表达式...