机构,通常都是有层级的,当机构编码没有规则的时候,仅通过 id和pid,就需要
通过递归查询来求得给定机构的所有下属代码:
create table tb(id varchar(3) , pid varchar(3) , name varchar(100));
insert into tb values('002' , 0 , '浙江省');
insert into tb values('001' , 0 , '广东省');
insert into tb values('003' , '002' , '衢州市');
insert into tb values('004' , '002' , '杭州市') ;
insert into tb values('005' , '002' , '湖州市');
insert into tb values('006' , '002' , '嘉兴市') ;
insert into tb values('007' , '002' , '宁波市');
insert into tb values('008' , '002' , '绍兴市') ;
insert into tb values('009' , '002' , '台州市');
insert into tb values('010' , '002' , '温州市') ;
insert into tb values('011' , '002' , '丽水市');
insert into tb values('012' , '002' , '金华市') ;
insert into tb values('013' , '002' , '舟山市');
insert into tb values('014' , '004' , '上城区') ;
insert into tb values('015' , '004' , '下城区');
insert into tb values('016' , '004' , '拱墅区') ;
insert into tb values('017' , '004' , '余杭区') ;
insert into tb values('018' , '011' , '金东区') ;
insert into tb values('019' , '001' , '广州市') ;
insert into tb values('020' , '001' , '深圳市') ;
--这里就可以看到004所有的下级
WITH RECURSIVE cte(id,name,pid) as
(
select a.id,a.name,a.pid from tb a where id='004'
union all
select k.id,k.name,k.pid from tb k inner join cte c on c.id = k.pid
)
select id,name,pid from cte order by pid ;
--要保存递归查询的数据,只需再建一张表
create table vt(id varchar(3) , name varchar(100));
insert into vt
WITH RECURSIVE cte(id,name,pid) as
(
select a.id,a.name,a.pid from tb a where id='004'
union all
select k.id,k.name,k.pid from tb k inner join cte c on c.id = k.pid
)
select id,name,pid from cte order by pid ;
相关推荐
完美解决多级递归查询,支持多种数据库,可以参照类似写法。有的数据库还是不支持的,但有类似的写法如oracle
递归查询菜单树,支持mysql,oracle,含表结构,递归查询菜单,支持mysql,oracle,含表结构递归查询菜单。
sql server 2008 递归查询所有上级或下级数据
一种MySQL数据库SQL递归查询的研究与实现.pdf
此菜单是与数据库相关联的,数据库设置多少级,你的树形菜单就能添加多少级,且不受限制,只需要调整网页界面就能出现不同的树形菜单风格。文件有源代码及sql语句,只需要简单的导入就行。
递归循环读取省市区json文件数据,并保存到数据库中(很全面) 其中包含代码,json文件,实体类代码。轻松上手
java递归树型结构通用数据库
主要介绍了有关数据库SQL递归查询在不同数据库中的实现方法的相关资料,需要的朋友可以参考下
树形结构,输入一个分公司,可以查询该分公司下的所以子公司,包括子公司的子公司,无穷级下去!
mysql递归查询,适合多分类查询。对于数据库中的树形结构数据,如部门表,有时候,我们需要知道某部门的所有下属部分或者某部分的所有上级部门,这时候就需要用到mysql的递归查询
---注意我用的数据库是orcl数据库--- ...----数据库中的递归方法 --- 递归计算数量 注意要慎用,弄不好不数据库能弄挂掉了,下载模仿写的时候一定不要写成死循环,要不自己机器还好,服务器的话。。。。嘿嘿。。
(注意,这是一个递归查询) 下面是一些样例数据 CREATE TABLE dbo.Employees ( empid INT NOT NULL PRIMARY KEY, mgrid INT NULL REFERENCES dbo.Employees, empname VARCHAR(25) NOT NULL, salary MONEY NOT ...
请参考数据库显示,看数据库内内容.这里仅仅给出了使用数据库中的数据创建树的示例,至于向数据库中增加数据大家可以摸索尝试,这里就不再给出。
获取数据库所有表名,表的所有列名 select name from sysobjects where xtype=’u’ select name from syscolumns where id=(select max(id) from sysobjects where xtype=’u’ and name=’表名’)☆ 递归查询...
asp递归无限级分类(含完整数据库),网上收集,免费提供。喜欢的记得在下面顶下我。
这是winform treeview的读取数据库代码,使用的方式是递归,这里的代码可以保证是效率最高的,开发的时间用的是VS2010,例子易懂,数据库的表结构,截图,然后放到了文件里,很清晰的代码思路。如果有问题可以加Q...
本文实例讲述了sql server实现递归查询的方法示例。分享给大家供大家参考,具体如下: 有时候面对树结构的数据时需要进行递归查询,网上找了一番,参考了各位大神的文章,发现蛮简单的,当做个小笔记方便以后使用 sql ...
.net TreeView 动态绑定 无限级树目录 递归调用。资源包括:数据库、完整实例代码! 有问题请与QQ:24394180联系
浅谈T-SQL语言之递归查询.pdf