SQLserver递归查询树结构

DROP TABLE [dbo].[TESTdigui]
GO
CREATE TABLE [dbo].[TESTdigui] (
[father] varchar(30) NULL ,
[childs] varchar(30) NULL ,
[num] int NULL 
)

GO
INSERT INTO [dbo].[TESTdigui] ([father], [childs], [num]) VALUES (N'A', N'B', N'200')
GO
GO
INSERT INTO [dbo].[TESTdigui] ([father], [childs], [num]) VALUES (N'B', N'G', N'700')
GO
GO
INSERT INTO [dbo].[TESTdigui] ([father], [childs], [num]) VALUES (N'A', N'C', N'300')
GO
GO
INSERT INTO [dbo].[TESTdigui] ([father], [childs], [num]) VALUES (N'D', N'E', N'500')
GO
GO
INSERT INTO [dbo].[TESTdigui] ([father], [childs], [num]) VALUES (N'D', N'F', N'600')
GO
GO
INSERT INTO [dbo].[TESTdigui] ([father], [childs], [num]) VALUES (N'A', N'H', N'800')
GO
GO
INSERT INTO [dbo].[TESTdigui] ([father], [childs], [num]) VALUES (N'A', N'D', N'400')
GO
GO

----SQL递归查询

WITH T AS
(
  SELECT father,childs , num 
  FROM [dbo].TESTdigui
  WHERE father = 'A'
  UNION ALL
  SELECT A.father , A.childs , A.num 
  FROM [dbo].TESTdigui AS A JOIN T AS B ON A.father = B.childs
)
SELECT * FROM T ORDER BY father,childs

发布了402 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_18932003/article/details/105393576