问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

这个SQL函数怎样写(递归)

发布网友 发布时间:2022-04-13 14:15

我来回答

3个回答

热心网友 时间:2022-04-13 15:45

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)
AS
BEGIN
DECLARE @R VARCHAR(20)
SET @R=@ID
WHILE ISNULL(@ID,'')<>''
BEGIN
SELECT @R=CAST(PID AS VARCHAR(20))+'.'+@R FROM T WHERE ID=@ID
SELECT @ID=PID FROM T WHERE ID=@ID
END
RETURN @R
END
GO
--生成目录

CREATE FUNCTION F2(@F VARCHAR(20))
RETURNS VARCHAR(20)
BEGIN
DECLARE @R VARCHAR(20)
SET @R=''
SET @F=SUBSTRING(@F,4,LEN(@F))
WHILE CHARINDEX('.',@F,1)<>0
BEGIN
SET @F=SUBSTRING(@F,CHARINDEX('.',@F,1)+1,LEN(@F))
SET @R='-'+@R
END
RETURN @R
END
GO
--生成前缀符号

SELECT DBO.F2(DBO.F(ID))+CAST(ID AS VARCHAR) FROM T ORDER BY DBO.F(ID)
--结果
GO

DROP TABLE T
DROP FUNCTION F
DROP FUNCTION F2

--不明白HI我

热心网友 时间:2022-04-13 17:03

正好,我刚写了一篇此算法的博客
http://blog.csdn.net/sq_zhuyi/archive/2009/02/06/3865977.aspx

热心网友 时间:2022-04-13 18:37

能再补充说明一下吗?有点不理解

是不是把上面的查询后输出时要按后面的来呀?
sql递归查询(向上反查和向下查询)

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

sql 怎么递归查询的方法:

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

oracle中使用sql递归算出1加到100的值

--自己调用自己才是递归 create or replace function addn(n number)return number is begin if n=1 then return 1;else return n+addn(n-1);end if;end;/ SQL&gt; select addn(100) from dual;ADDN(100)--- 5050

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 ...

SQL函数怎么实现递归

declare @b nvarchar(2) =1;with abc(id,b_PriorID,level)as (select id,b_PriorID,0 level from #tt where b_PriorID =@b union all select a.id,a.b_PriorID,t.level+1 from #tt a inner join abc t on t.id=a.b_PriorID )select * from abc 你试试可以么?

这个sql语句怎么写?最好不用使用 code 计算length ,code是动态的_百度...

2,0,'001002')insert into t values(3,1,'00100101')insert into t values(4,1,'00100102')insert into t values(5,1,'00100103')insert into t values(6,2,'00100201')insert into t values(7,3,'0010010101')insert into t values(8,3,'0010010102')--查询(递归表达式)with CTAs(...

SQL递归获取所有父节点的函数

CREATE FUNCTION 函数名( @id AS varchar(2)) RETURNS varchar(1000) AS BEGIN DECLARE @tmp VARCHAR(1000)IF @id IS NOT NULL BEGIN SELECT @tmp=@id+','+isnull(dbo.函数名(第三列字段),'') FROM [表名] WHERE [第一列字段] = @id END RETURN @tmp END 调用方法:SELECT substring...

sql语句实现递归查询所有节点,mysql和oracle都能用的

如果是从子节点递归到父节点查询,就把start with 换成unid,prior左右对换 下面再讲MySql 的递归查询方式。MySql没有Oracle的强大功能,虽然都是同一个公司的产品。所以只能靠自己写。有很多方法,用sql去循环查询,或者写存储过程,我这里只提供一种。就是新建一个function函数。表结构不说了,无非就是...

MySQL递归查询上下级菜单

综上所述,通过`GROUP_CONCAT()`和`FIND_IN_SET()`函数的运用,我们成功实现了多级菜单的展示,并通过SQL语句解决了相关问题。这种方法简洁易懂,适用于需要查询层级关系的场景。在实际应用中,我们还可以通过递归构建单位树,实现更复杂的业务逻辑。本文提供的SQL解决方案仅作为实现该功能的一种方法,如...

sql 科目余额表

--递归CREATE OR REPLACE FUNCTION recursion_func(in_序号 NUMBER) RETURN NUMBER ISv_sum NUMBER;v_借方金额 NUMBER;v_贷方金额 NUMBER;BEGIN SELECT 借方金额,贷方金额 INTO v_借方金额,v_贷方金额 FROM table_name; IF in_序号 &lt;= 1 THEN v_sum := 期初金额; ELSE v_sum :=...

写一个递归函数 递归函数写斐波那契数列 如何写递归函数 写递归函数的正确思维方法 python中递归函数写法 python中递归函数的编写方法 编写递归函数必备两条因素为 函数的递归调用怎么理解 python 递归函数
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求好看的重生文,不要重生回到以前的,女主性格不能软弱无能,不能太... 求双洁的娱乐圈小说(男女主或攻受一定要都身心干净,并且要重生的 )可 ... ...文笔一定要好 重生娱乐圈什么的都无所谓 一定要是婚后的! 浙江高考成绩理科专科排名查询怎么查啊,最好给网站谢谢 各高校是怎么依照高考成绩录取 四不像是什么样的动物 孔家后人为什么要把“四不像”刻在孔府内的照壁上? 中国龙和外国龙的区别西方龙的区别 山东省烟台市高新技术产业开发区的车牌号是什么? 电脑重装系统按个键-(电脑重装系统按个键没反应) 认罪认罚签了后会判缓刑吗 2020认罪认罚基本都判缓刑 左面肋骨下面疼是怎么回事 自愿认罪认罚,检察官给量刑两年,法官会给判处缓刑吗? 我是取保候审在家签了认罪认罚了,还没开庭今天*通知我带着村干部去签字是什么意思能判缓吗? 醉驾应当以危险驾驶罪追究其刑事责任,被告人自愿的认罪认罚,可以从宽处理 问题:可以判缓刑吗? 醉驾认罪认罚基本都判缓刑是正确的吗 同一个PDF文档为什么在我的电脑能打开,在别人的电脑打不开? 2021年认罪认罚新规定 签了认罪认罚还能缓刑吗 福昕阅读器 PDF总是打开多个窗口,能否合并在一起,只打开一个窗口,文档显示为标签页? 其他pdf文件都能打开,为什么这个pdf 文件打不开,这是什么原因? 为什么PDF 打开一个文件,一直弹出,数字越界。怎么办。好烦 网上下载了PDF文件,但只能用PS打开,而且一次就只能看一张,有什么软件可以全部打开看? 为什么PDF只能打开部分文件 pdf 文件只能打开一半,怎么解决? pdf打开所有文件都是一个 怎么回事 极速pdf阅读器为什么只能打开一个文件 用一朵云对着一个人吹气,一个人对着一朵云吹气打一成语 “教育意味着一棵树摇动另一棵树,一朵云推动另一朵云”————这段话的详细出处???? 有谁干过模特或者空姐,分享下心得 长的好看可以干什么 日本空姐没活干,转行干巫女,巫女在日本到底是啥职业? 和空姐同居的日子二部下载地址 空姐的职业病有哪些很严重吗?一般干多久会产生?当空姐是利大于弊还是弊大于利?希望业内人士解答一下, crashed的中文意思 crashed是什么意思啊 求我独自升级的小说 Crash 是什么意思? 哥 我独自升级 小说可以借来看看嘛? 能给我我独自升级小说吗? crash什么意思 crash的意思? 哪位大佬有我独自升级小说资源? collide和crash的区别是什么 那个我独自升级怎么看到270话? app crashed-writeminidump是说啥意思? crashed into意思 appcrashed-writeminidump是什么意思? 一首老歌,是个女歌手唱的,大概歌词就是,天空有一朵一朵云 一朵一朵朵云,有知道是什么歌么