专注于.NET编程学习和技术分享

sql with as 递归的实现(树形结构)

在有树形结构的数据库表可以通过sql递归的方式查询出节点下面所有的数据,有树形结构的数据特征如:文档目录表、组织架构表、菜单表…

定义一个公司(company)表 ,总公司下面包含子公司,子公司下面又包含分办事处

CREATE TABLE [dbo].[Company](
    [id] [nvarchar](50) NOT NULL,  //Id 主键
    [companyName] [nvarchar](50) NULL, //公司名称
    [pId] [nvarchar](50) NULL //父节点id
) ON [PRIMARY]
<!-- 查找所有当前节点的所有子节点 >  查找B分公司和下面的办事处
with temp as(
select * from company where pid='B'
union  all
select c.* from company  c ,temp t where c.pid=t.id)
select * from temp 
未经允许不得转载:墨鱼巴巴 » sql with as 递归的实现(树形结构)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址