侧边栏壁纸
博主头像
陈大雷的 Blog博主等级

行动起来,活在当下

  • 累计撰写 98 篇文章
  • 累计创建 24 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Sql Server 2005 使用 With 递归查询

Administrator
2010-04-17 / 0 评论 / 0 点赞 / 36 阅读 / 543 字

表中存放的是后台系统的功能模块信息,ModuleID表示模块的编号、MoudleName表示模块名、ModuleFather表示模块的父级编号(如果为0则表示自己是最高级的)。 现在我们要查询出OA管理的所有子模块(不限级)。 由SQL语句如下。

WITH
AS
(
SELECT ModuleId,ModuleName,ModuleFather,ModuleSort
FROM dbo.Module
WHERE ModuleId=1
UNION ALL
SELECT m.ModuleId,m.ModuleName,m.ModuleFather,m.ModuleSort
FROM dbo.Module m
INNER JOIN Modules a
ON a.ModuleId=m.ModuleFather
)

SELECT m.ModuleId,m.ModuleName,m.ModuleFather,m.ModuleSort
FROM Modules m
INNER JOIN dbo.Module mod
ON m.ModuleFather=mod.ModuleId
0

评论区