SQL Server根据子节点查询所有父节点的代码示例

数据库 SQL Server
本文我们主要介绍了SQL Server根据子节点查询所有父节点的代码示例,初学者可以套用其格式即可完成子节点查询所有父节点的功能,希望能够对您有所帮助。

SQL Server数据库根据子节点查询所有父节点的方法是本文我们主要要介绍的内容,接下来我们就通过一个代码示例来介绍这一过程的实现。

  1. create table tb(id varchar(3) , pid varchar(3) , name varchar(10))  
  2. insert into tb values('001' , null , '广东省')  
  3. insert into tb values('002' , '001' , '广州市')  
  4. insert into tb values('003' , '001' , '深圳市')  
  5. insert into tb values('004' , '002' , '天河区')  
  6. insert into tb values('005' , '003' , '罗湖区')  
  7. insert into tb values('006' , '003' , '福田区')  
  8. insert into tb values('007' , '003' , '宝安区')  
  9. insert into tb values('008' , '007' , '西乡镇')  
  10. insert into tb values('009' , '007' , '龙华镇')  
  11. insert into tb values('010' , '007' , '松岗镇')  
  12. go  
  13.  
  14. --查询指定节点及其所有父节点的函数  
  15. create function f_pid(@id varchar(3)) returns @t_level table(id varchar(3))  
  16. as  
  17. begin  
  18. insert into @t_level select @id  
  19. select @id = pid from tb where id = @id and pid is not null  
  20. while @@ROWCOUNT > 0  
  21. begin  
  22. insert into @t_level select @id select @id = pid from tb where id = @id and pid is not null  
  23. end  
  24. return  
  25. end  
  26. go  
  27.  
  28. --调用函数查询002(广州市)及其所有父节点  
  29. select a.* from tb a , f_pid('002') b where a.id = b.id order by a.id  
  30. /*  
  31. id pid name   
  32. ---- ---- ----------   
  33. 001 NULL 广东省  
  34. 002 001 广州市 

 

以上的代码就就实现了SQL Server根据子节点查询所有父节点的功能,本文就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

  1. SQL Server数据库ISNULL函数的应用实例
  2. SQL Server数据库DATEPART的语法及使用实例
  3. SQL Server查找XML里面符合某个条件的数据的用法
  4. SQL Server的执行计划及SQL查询优化实例分析与总结
  5. SQL Server脏读方式数据提取之NOLOCK和READPAST
责任编辑:赵鹏 来源: 博客园
相关推荐

2022-03-22 07:51:45

JS父节点

2023-11-03 08:08:00

MySQL子节点

2010-07-21 09:50:12

SQL Server子

2010-07-06 17:09:45

SQL Server索

2021-04-02 07:46:52

SQL Server数据库知识笔记

2009-11-06 14:51:14

WCF配置子节点

2010-06-30 15:24:49

SQL Server子

2011-07-19 20:55:09

2011-08-22 10:15:39

数据库存储过程

2011-08-18 09:40:51

SQL Server根据语言查询

2010-09-25 16:37:33

SQL动态查询

2013-03-06 09:49:16

SQL Server

2011-08-25 14:38:14

SQL Server修改表结构字段类型

2010-11-09 12:09:23

SQL Server查

2009-06-12 09:03:30

Linuxinode节点数量调节

2011-09-01 17:25:03

SQL Server 查看死锁存储过程

2011-08-22 10:32:32

SQL Server数XML节点XML块

2011-08-16 16:37:40

Oracle数据库树形查询根节点

2011-08-02 13:44:49

JSPJDBCSQL Server

2010-04-12 17:47:01

Oracle多表查询
点赞
收藏

51CTO技术栈公众号