惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - 小呆也行

数据库分区(一) SQL SERVER 分区 向大数据进军 SqlServer中查看数据库所有表的表空间和索引空间信息 C#winform部署中自定义配置文件 url问题 - 小呆也行 - 博客园 COM+的使用(转) Sql中查找数据库中,所有包含字段的表名 死亡机器(转) 厚黑口才学大全(读后感) ASP TO ASP.NET migration,a new approach (Reprinted) ASP向ASP.AET迁移要注意的问题(转) Linq的模糊查询 - 小呆也行 - 博客园 0.4-0.3==0.1 听懂面试官问题背后的潜台词 - 小呆也行 聪明人把知道说出来,而智者则不声张 我一进教室就震惊了 注册assembly的问题 学习.NET 事例网站
SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点(转)
小呆也行 · 2010-11-24 · via 博客园 - 小呆也行

--建立測試環境
Create Table A
(ID Int,
 fatherID Int,
 NameVarchar(10)
)
Insert A Select 1,        NULL,       'tt'
Union All Select 2,        1,          'aa'
Union All Select 3,        1,          'bb'
Union All Select 4,        2,          'cc'
Union All Select 5,        2,          'gg'
Union All Select 6,        4,          'yy'
Union All Select 7,        4,          'jj'
Union All Select 8,        7,           'll'
Union All Select 9,        NULL,  'uu'
Union All Select 10,       9,         'oo'
GO
--建立函數

--取字子节点
Create Function GetChildren(@ID Int)
Returns @Tree Table (ID Int, fatherID Int, Name Varchar(10))
As
Begin
Insert @Tree Select ID, fatherID, Name From A Where fatherID = @ID
While @@Rowcount > 0
Insert @Tree Select A.ID, A.fatherID, A.Name From A A Inner Join @Tree B On A.fatherID = B.ID And A.ID Not In (Select ID From @Tree)
Return
End
GO

--取父节点

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
Create Function [dbo].[GetParent](@ID Int)
Returns @Tree Table (ID Int, fatherID Int, Name Varchar(10))
As
Begin
Insert @Tree Select ID, fatherID, Name From A Where ID = @ID
While @@Rowcount > 0
Insert @Tree Select A.ID, A.fatherID, A.Name From A A Inner Join @Tree B On A.ID = B.fatherID And A.ID Not In (Select ID From @Tree)
Return
End

--測試
Select * From dbo.GetChildren(1)

Select * From dbo.GetParent(9)
GO