无限递归sql语句

就是先查询商品主编号为0的,然后得到它的typeId然后根据typeId查询主编号等于typeId的商品 详细--做到无限递归

create table testtab (id int, typeid int);
insert into testtab values(0,1), (1,2),(1,3),(2,4),(3,5),(4,6);

with iter (id, typeid) as (
select id, typeid from testtab
union all
select t.id, t.typeid from iter, testtab t where iter.typeid = t.id
)
select distinct id, typeid from iter;

大致是这样
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-24
没明白

SQL CTE递归查询
首先 你在这里 OPTION (MAXRECURSION 2) 无非就是想控制递归次数 你可以这样做 --Creates an infinite loop WITH cte (EmployeeID, ManagerID, Title,lev) as (SELECT EmployeeID, ManagerID, Title,lev=1 FROM HumanResources.Employee WHERE ManagerID IS NOT NULL UNION ALL SELECT cte.EmployeeID...

SQL递归实现循环判断
SQL递归查询是高级语法,虽然当前Hive不支持,未来可能加入。大部分互联网企业不使用Oracle和SQL Server,因此将其视为一次思维拓展。

SQL 函数递归
CREATE TABLE T(ID INT ,PID INT)INSERT INTO T SELECT 1,0 UNION ALL SELECT 2,0 UNION ALL SELECT 3,1 UNION ALL SELECT 4,1 UNION ALL SELECT 5,2 UNION ALL SELECT 6,4 UNION ALL SELECT 7,3 UNION ALL SELECT 8,4 GO --测试数据 CREATE FUNCTION F(@ID INT)RETURNS VARCHAR(20...

sql语句实现递归查询所有节点,mysql和oracle都能用的
首先说一下Oracle的递归查询,相信大部分人都知道很简单。无非start with connect by 函数。下面是从pId向子节点递归查询的例子,unId是数据库表中的主键。如果是从子节点递归到父节点查询,就把start with 换成unid,prior左右对换 下面再讲MySql 的递归查询方式。MySql没有Oracle的强大功能,虽然都是同...

sql 怎么递归查询的方法:
Insertintotest_connectvalues(1,1);Insertintotest_connectvalues(2,1);Insertintotest_connectvalues(3,2);Insertintotest_connectvalues(4,3);提交;3.查询数据表的内容,选择*fromtest_connect,4.执行递归查询语句,将答案添加到nocycle元素中,就不会有[ora-01436:CONNECTBY...

sql递归查询(向上反查和向下查询)
SQL递归查询,分为向上反查和向下查询,通过WITH RECURSIVE定义递归表达式,实现深度遍历。初始查询语句如下:选择member_sys_industry表中特定条件下的数据,包括id、no、parent_no、type_name、grade,确保数据有效且类型为0,且行业名称包含“水泥”,且关系为1。将初始查询与递归查询结合,递归查询通过JOIN...

记录一次面试题,使用Sql进行递归
在具体操作中,注意到数据类型转换可能引发错误,故加入Cast进行类型转换,确保SQL语句执行无误。设置OPTION(MAXRECURSION 3)限制递归深度,避免无限递归导致的性能问题。最终,执行上述递归Sql查询,获得结果,如图所示。通过Sql的递归机制,成功解决了具有父子层级关系的数据查询问题,高效地实现了数据的深度遍历...

sql用什么方法可以实现递归函数?
在 SQL 中,你可以使用递归查询来实现递归函数。递归查询是一种查询,其中结果集由一条或多条 SELECT 语句和一条用于查找下一级行的 UNION ALL 语句组成。例如,假设你有一张表,其中包含父子关系的信息(即,每个记录都有一个父级 ID,表示它的父级),你可以使用以下递归查询来查询每个记录的所有...

递归SQL语句、索引的HEIGHT和BLEVEL以及SELECT FOR UPDATE相关问题_百度...
1,所谓的递归sql就是在运行当前的sql时调用另外一个sql,如果另外一个sql又调用了另一个sql,那么递归深度就是1(从0开始)。2,unique scan一般出现在扫描具有unique约束的索引列上:scott@ORCL>select * from emp where empno=7788;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ...

sql 查询出到上一级(无限级)
这个用with 语句可以实现,sqlserver应该支持 参考:http:\/\/hi.baidu.com\/micro0369\/item\/5a89cc277733081e0975086c 这个是从上网下搜索的。

相似回答
大家正在搜