關於樹型結構資料遞迴查詢,轉非遞迴查詢的實現
常見樹型表的基礎結構(表1): ID 節點編號 PID 所屬父節點編號
對這類樹型結構的資料進行查詢一般是遞迴,即: 輸入節點編碼,然後在一個遞迴查詢中串出所有子節點列表;
樹型表基礎表結構的改進(表2):
ID 節點編號 PID 所屬父節點編號 MarkNum 節點基數 LevelNum 節點所在層級數
MarkNum為節點基數字段 注:MarkNum受小數精度極限影響,可設為字串型別 LevelNum為節點所屬層級欄位 這兩個值的計算方式如下: N任意層的基數(0<N<=1) L層極數(L>=1) M倍數規則(M=1/2) K同層同父的相鄰節點的增量 P 擴充套件小數位的長度(P=4),該值與同父子節點的個數相關,以P=4為例,同父子節點的個數為最大為999 W為任意層級數L實際保留小數的位數 W=L-2+(L-1)*P (L>=2) K=(1/10)W
同父各子節點基數計算方式如下: N`同父的各子節點基數 I同父的子節點序列索引數(I>=1)
改進後的表節點查詢可以以非遞迴方式實現,即: 根據節點所在的基數和所屬層級數,這兩個引數進行指定的計算式來生成查詢操作所需的條件: 設R(N,L)為生成查詢條件 N為輸入節點的基數 L(L>=2)為輸入節點所屬層級數 round為sql標準函式 n 為表(2)中所有節點的基數集合 R(N,L) => 0== mod(N,round(n,W)) Λ L
本人技術能力有限,不足之處,請指教 basic_wan@163.com
相關文章
- Java實現遞迴查詢樹結構Java遞迴
- 【資料結構】——搜尋二叉樹的插入,查詢和刪除(遞迴&非遞迴)資料結構二叉樹遞迴
- Mysql 實現樹狀遞迴查詢MySql遞迴
- 【演算法拾遺】二分查詢遞迴非遞迴實現演算法遞迴
- PostgreSQL 遞迴查詢SQL遞迴
- PostgreSQL=>遞迴查詢SQL遞迴
- SqlServer遞迴查詢SQLServer遞迴
- ORACLE 遞迴查詢Oracle遞迴
- sqlalchemy 遞迴查詢SQL遞迴
- 樹結構表遞迴查詢在ORACLE和MSSQL中的實現方法遞迴OracleSQL
- oracle中的遞迴sql查詢 connect by prior實現遞迴Oracle遞迴SQL
- 遞迴樹形查詢所有分類遞迴
- 【資料結構】二叉樹遍歷(遞迴+非遞迴)資料結構二叉樹遞迴
- 樹結構表遞迴查詢在ORACLE和MSSQL中的實現方法 [續]遞迴OracleSQL
- SQL Server遞迴查詢SQLServer遞迴
- Oracle遞迴查詢sqlOracle遞迴SQL
- 一個遞迴查詢遞迴
- 遞迴查詢子元素遞迴
- ORACLE遞迴查詢(適用於ID,PARENTID結構資料表)Oracle遞迴
- Oracle SQL的遞迴查詢OracleSQL遞迴
- oracle之樹狀結構的儲存與展示(遞迴查詢)Oracle遞迴
- SQL server資料庫with as子句與遞迴查詢的實現SQLServer資料庫遞迴
- Sql Server 使用CTE實現遞迴查詢SQLServer遞迴
- 資料庫遞迴查詢:MySQL VS Sequelize資料庫遞迴MySql
- JS遞迴過濾樹形結構陣列物件--模糊查詢JS遞迴陣列物件
- sql無限遞迴查詢SQL遞迴
- grep遞迴查詢子目錄遞迴
- sql遞迴查詢子級SQL遞迴
- MS SQL Server的遞迴查詢SQLServer遞迴
- oracle中connect by prior實現遞迴查詢Oracle遞迴
- 用VisualC++6.0遞迴查詢目錄樹 (轉)C++遞迴
- 使用SQL SERVER 2005/2008 遞迴CTE查詢樹型結構SQLServer遞迴
- 資料結構-樹以及深度、廣度優先遍歷(遞迴和非遞迴,python實現)資料結構遞迴Python
- java-遞迴(檔案查詢)Java遞迴
- 二分法查詢(遞迴實現)遞迴
- 我對Postgresql遞迴查詢的理解SQL遞迴
- MS SQL Server的遞迴查詢(2)SQLServer遞迴
- js樹型結構資料簡易遞迴JS遞迴