您的位置:首页 > 数据库

SQL CTE WITH AS 用法

2013-02-18 17:20 483 查看
CREATE TABLE Menu
(
Id INT IDENTITY(1,1),
Parent INT NOT NULL,
[Name] VARCHAR(20) NOT null
)
GO
INSERT INTO Menu(Parent,[Name]) VALUES(0,'字典')
INSERT INTO Menu(Parent,[Name]) VALUES(1,'人')
INSERT INTO Menu(Parent,[Name]) VALUES(2,'男人')
INSERT INTO Menu(Parent,[Name]) VALUES(2,'女人')

--简化嵌套
WITH people AS
(
SELECT * FROM Menu m
)
SELECT * FROM people
go
--递归查询 父子类关系
WITH people AS
(
SELECT m.Id,m.Parent, m.[Name] FROM Menu m WHERE m.Id = 2
UNION ALL
SELECT m.Id, m.Parent, m.[Name] FROM Menu m INNER JOIN people p ON m.Parent = p.id
)
SELECT * FROM people
go
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: