189 8069 5689

nosql递归的简单介绍

sql 怎么递归查询的方法:

1.创建测试表,createtabletest_connect(idnumber,p_idnumber);

成都创新互联公司是一家专业提供红寺堡企业网站建设,专注与网站设计、网站建设、H5开发、小程序制作等业务。10年已为红寺堡众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

2.插入测试数据,

Insertintotest_connectvalues(1,1);

Insertintotest_connectvalues(2,1);

Insertintotest_connectvalues(3,2);

Insertintotest_connectvalues(4,3);

提交;

3.查询数据表的内容,选择*fromtest_connect,

4.执行递归查询语句,将答案添加到nocycle元素中,就不会有[ora-01436:CONNECTBYerrorintheuserdata]。执行结果如下:

Select*

来自test_connectt

从id=4开始

由nocyclepriort连接。p_id=t.i.

如何实现数据库SQL递归查询在不同数据库中例子源代码

sql 递归查询的方法:

方法一:T-SQL递归查询

with Dep as

(

select Id,DeptCode,DeptName from Department where Id=1

union all

select d.Id,d.DeptCode,d.DeptName from Dep

inner join Department d on dep.Id = d.ParentDeptId

)

select * from Dep

方法二:PL/SQL递归查询

select Id,DeptCode,DeptName

from Department

start with Id = 1

connect by prior Id = ParentDeptId;

SQL如何实现递归查询检测

select * from table_name where id in (select id from table connect by prior id = pid start with id = 你想起始的ID);

(select id from table connect by prior id = pid start with id = 你想起始的ID);

这部分就可以递归查询到所有以某一个父ID下的所有的包含父ID在内的所有ID!

关于SQL递归查询问题

我来测一下,等会上传结果

你还有一个表没用到。

WITH cte AS (

SELECT RegionID,RegionName,RegionPID FROM [tbRegionTree] WHERE regionPID='01'

UNION ALL

SELECT d.RegionID,d.RegionName,d.RegionPID FROM cte c inner JOIN [tbRegionTree] d ON d.regionPID=c.RegionID

)

SELECT * FROM cte

上面是找到 01 中国的。

下面为非中国的。 条件上处理下

WITH cte AS (

SELECT RegionID,RegionName,RegionPID FROM [tbRegionTree] WHERE regionPID NOT LIKE '01%'

UNION ALL

SELECT d.RegionID,d.RegionName,d.RegionPID FROM cte c inner JOIN [tbRegionTree] d ON d.regionPID=c.RegionID

)

SELECT * FROM cte


网站题目:nosql递归的简单介绍
转载源于:http://cdxtjz.cn/article/hdhpgo.html

其他资讯