一個遞迴查詢
今天有同學在群裡詢問一個遞迴查詢的寫法,記錄一下:
表t 表t1(id1,id2 多於表t表的id關聯) id name id1 id2 1 a 1 2 2 b 2 3 3 c 2 4 4 d 3 5 5 e
表t1,id1,id2 是一個部門上下級關係,查詢所有部門的列表,按照級別關係寫成完整字串. 1:a 2:a\b 3:a\b\c 4:a\b\d 5:a\b\c\e
如下: create table t(id number,name varchar2(10)); insert into t values(1,'a'); insert into t values(2,'b'); insert into t values(3,'c'); insert into t values(4,'d'); insert into t values(5,'e');
create table t1(id1 number,id2 number); insert into t1 values(1,2); insert into t1 values(2,3); insert into t1 values(2,4); insert into t1 values(3,5);
create or replace function sp_get_name(p_num number) return varchar2 is p_name varchar2(100); begin with tt as (select distinct t1.id1, id2 from t1 connect by id2 = prior id1 start with id2 = p_num) select replace(wmsys.wm_concat(name), ',', '\') into p_name from (select distinct t.id, t.name from tt, t where tt.id1 = t.id or tt.id2 = t.id order by t.id); return p_name; end;
SQL> select id, decode(sp_get_name(id), null, 'a', sp_get_name(id)) name from t; ID NAME ---------- ----------------------------------------------------------------------- 1 a 2 a\b 3 a\b\c 4 a\b\d 5 a\b\c\e
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24496749/viewspace-723171/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL 遞迴查詢SQL遞迴
- PostgreSQL=>遞迴查詢SQL遞迴
- SqlServer遞迴查詢SQLServer遞迴
- ORACLE 遞迴查詢Oracle遞迴
- SQL Server遞迴查詢SQLServer遞迴
- Oracle遞迴查詢sqlOracle遞迴SQL
- sql無限遞迴查詢SQL遞迴
- grep遞迴查詢子目錄遞迴
- sql遞迴查詢子級SQL遞迴
- Oracle SQL的遞迴查詢OracleSQL遞迴
- java-遞迴(檔案查詢)Java遞迴
- MS SQL Server的遞迴查詢SQLServer遞迴
- 關於樹型結構資料遞迴查詢,轉非遞迴查詢的實現遞迴
- 記錄一次遞迴查詢的運用遞迴
- oracle中的遞迴sql查詢 connect by prior實現遞迴Oracle遞迴SQL
- 遞迴-M--二分查詢遞迴
- 遞迴樹形查詢所有分類遞迴
- 我對Postgresql遞迴查詢的理解SQL遞迴
- 11GR2遞迴With子查詢遞迴
- Mysql 實現樹狀遞迴查詢MySql遞迴
- MS SQL Server的遞迴查詢(2)SQLServer遞迴
- iOS 演算法之排序、查詢、遞迴iOS演算法排序遞迴
- 資料庫遞迴查詢:MySQL VS Sequelize資料庫遞迴MySql
- 透過遞迴查詢應用依賴遞迴
- Java實現遞迴查詢樹結構Java遞迴
- Sql Server 使用CTE實現遞迴查詢SQLServer遞迴
- SQL with as 的用法 以及遞迴函式的寫法 遞迴層次查詢SQL遞迴函式
- 【演算法拾遺】二分查詢遞迴非遞迴實現演算法遞迴
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- Ztree + PHP 無限級節點遞迴查詢PHP遞迴
- oracle中connect by prior實現遞迴查詢Oracle遞迴
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- 二分法查詢(遞迴實現)遞迴
- Linux 檔案、內容查詢(遞迴) ,grep ,findLinux遞迴
- 【聽海日誌】之ORACLE遞迴查詢學習Oracle遞迴
- react 寫的一個快遞查詢、電影頭條React
- 同事問我MySQL怎麼遞迴查詢,我懵逼了MySql遞迴
- 用VisualC++6.0遞迴查詢目錄樹 (轉)C++遞迴