oracle一條語句遞迴查詢父子關係____oracle

來源:互聯網
上載者:User

1  建表:

CREATE TABLE test_tree (  test_id   INT  NOT NULL,  pid       INT,  test_val  VARCHAR(10),  PRIMARY KEY (test_id));INSERT INTO test_tree VALUES(1, 0,   '.NET');INSERT INTO test_tree VALUES(2, 1,      'C#');INSERT INTO test_tree VALUES(3, 1,      'J#');INSERT INTO test_tree VALUES(4, 1,      'ASP.NET');INSERT INTO test_tree VALUES(5, 1,      'VB.NET');INSERT INTO test_tree VALUES(6, 0,   'J2EE');INSERT INTO test_tree VALUES(7, 6,      'EJB');INSERT INTO test_tree VALUES(8, 6,      'Servlet');INSERT INTO test_tree VALUES(9, 6,      'JSP');INSERT INTO test_tree VALUES(10, 0,  'Database');INSERT INTO test_tree VALUES(11, 10,    'DB2');INSERT INTO test_tree VALUES(12, 10,    'MySQL');INSERT INTO test_tree VALUES(13, 10,    'Oracle');INSERT INTO test_tree VALUES(14, 10,    'SQL Server');INSERT INTO test_tree VALUES(15, 13,    'PL/SQL');INSERT INTO test_tree VALUES(16, 15,    'Function');INSERT INTO test_tree VALUES(17, 15,    'Procedure');INSERT INTO test_tree VALUES(18, 15,    'Package');INSERT INTO test_tree VALUES(19, 15,    'Cursor');INSERT INTO test_tree VALUES(20, 14,    'T-SQL');
使用 START  WITH    CONNECT   BY   語句實現樹狀查詢 使用 SYS_CONNECT_BY_PATH  函數,擷取節點的全路徑. COLUMN   "FullPath"       2:查詢語句
SELECT  LEVEL,  test_id,  test_val,  SYS_CONNECT_BY_PATH(test_val, '\') AS "FullPath"FROM  test_treeSTART WITH  pid =0CONNECT BY PRIOR test_id = pidORDER SIBLINGS BY test_val;
     LEVEL    TEST_ID TEST_VAL             FullPath---------- ---------- -------------------- -----------------------------------         1          1 .NET                 \.NET         2          4 ASP.NET              \.NET\ASP.NET         2          2 C#                   \.NET\C#         2          3 J#                   \.NET\J#         2          5 VB.NET               \.NET\VB.NET         1         10 Database             \Database         2         11 DB2                  \Database\DB2         2         12 MySQL                \Database\MySQL         2         13 Oracle               \Database\Oracle         3         15 PL/SQL               \Database\Oracle\PL/SQL         4         19 Cursor               \Database\Oracle\PL/SQL\Cursor     LEVEL    TEST_ID TEST_VAL             FullPath---------- ---------- -------------------- -----------------------------------         4         16 Function             \Database\Oracle\PL/SQL\Function         4         18 Package              \Database\Oracle\PL/SQL\Package         4         17 Procedure            \Database\Oracle\PL/SQL\Procedure         2         14 SQL Server           \Database\SQL Server         3         20 T-SQL                \Database\SQL Server\T-SQL         1          6 J2EE                 \J2EE         2          7 EJB                  \J2EE\EJB         2          9 JSP                  \J2EE\JSP         2          8 Servlet              \J2EE\Servlet


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.