深入sql oracle递归查询建站知识
导读:1建站知识本篇文章是对sql oracle 递归查询进行了详细的分析介绍,需要的朋友参考下seo网站排名优化软件网站推广优化seo。
☆ 获取数据库所有表名,表的所有列名 select name from sysobjects where xtype='u' select name from syscolumns wh公司网站建设ere id=(select max(id) from sysobjects where xtype='u' and)☆ 递归查询数据Sql语句里的递归查询 SqlServer2005和Oracle 两个版本以前使用Oracle,觉得它的递归查询很好用,就研究了一下SqlServer,发现它也支持在Sql里递归查询举例说明:SqlServer2005版本的Sql如下:比如一个表,有id和pId字段,id是主键,pid表示它的上级节点,表结构和数据:CREATE TABLE [aaa]( [id] [int] NU如何seo优化推广网站LL, [pid] [int] NULL, [name] [nchar](10))GOINSERT INTO aaa VALUES(1,0,'a')INSERT INTO aaa VALUES(2,0,'b')INSERT INTO aaa VALUES(3,1,'c')INSERT INTO aaa VALUES(4,1,'d')INSERT INTO aaa VALUES(5,2,'e')INSERT INTO aaa VALUES(6,3,'f')INSERT INTO aaa VALUES(7,3,'g')INSERT INTO aaa VALUES(8,4,'h')GO--下面的Sql是查询出1结点的所有子结点with my1 as(select * from aaa where id = 1 union all select aaa.* from my1, aaa where my1.id = aaa.pid)select * from my1 --结果包含1这条记录,如果不想包含,可以在最后加上:where id <> 1--下面的Sql是查询出8结点的所有父结点with my1 as(select * from aaa where id = 8 union all select aaa.* from my1, aaa where my1.pid = aaa.id)select * from my1;--下面是递归删除1结点和所有子结点的语句:with my1 as(select * from aaa where id = 1 union all select aaa.* from my1, aaa where my1.id = aaa.pid)delete from aaa where exists (select id from my1 where my1.id = aaa.id) Oracle版本的Sql如下:比如一个表,有id和pId字段,id是主键,pid表示它的上级节点,表结构和数据请参考SqlServer2005的,Sql如下:--下面的Sql是查询出1结点的所有子结点 SELECT * FROM aaa START WITH id = 1CONNECT BY pid = PRIOR id--下面的Sql是查询出8结点的所有父结点 SELECT * FROM aaa START WITH id = 8CONNECT BY PRIOR pid = id今天帮别人做了一个有点意思的sql,也是用递归实现,具体如下:假设有个销售表如下:CREATE TABLE [tb]( [qj] [int] NULL, -- 月份,本测试假设从1月份开始,并且数据都是连续的月份,中间没有隔断 [je] [int] NULL, -- 本月销售实际金额 [rwe] [int] NULL, -- 本月销售任务额 [fld] [float] NULL -- 本月金额大于任务额时的返利点,返利额为je*fld) ON [PRIMARY]现在要求计算每个月的返利金额,规则如下:1月份销售金额大于任务额 返利额=金额*返利点2月份销售金额大于任务额 返利额=(金额-1月份返利额)*返利点3月份销售金额大于任务额 返利额=(金额-1,2月份返利额)*返利点以后月份依次类推,销售额小于任务额时,返利为0具体的Sql如下:
声明: 本文由我的SEOUC技术文章主页发布于:2023-05-23 ,文章深入sql oracle递归查询建站知识主要讲述递归,深入,深入sql oracle递归查询建站知识1网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_6178.html