深入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網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_6178.html