zoukankan      html  css  js  c++  java
  • 不同数据库对树状数据递归查询支持

    Oracle对树形数据的递归查询使用Connect子句,例如:
    以下内容为程序代码:

    SELECT ID, PARENTID, Level 
    FROM TREENODE 
    Start 
    With ID = 'A2' 
    Connect 
    By Prior ID = ParentId

    在DB2和最新的MS SQL Server 2005中也支持递归查询。SQL Server 2005和DB 2语法是相似的。

    如上的SQL在DB 2中应为:

    WITH SUB_TABLE (ID, PARENTID, Level
    AS (
      
    SELECT ID, PARENTID, 0 FROM TREENODE WHERE ID = 'A2' 
      
    UNION ALL 
      
    SELECT PRIOR_TAB.ID, PRIOR_TAB.PARENTID, KSQL_SUB_TABLE.Level + 1 
        
    FROM (SELECT ID, PARENTID, Level FROM TREENODE) PRIOR_TAB, SUB_TABLE 
      
    WHERE SUB_TABLE.ID = PRIOR_TAB.ParentId
    )
    SELECT ID, PARENTID, Level FROM SUB_TABLE

    DB2中递归查询使用起来,比Oracle的麻烦。Oracle中引入了Prior关键字,使得递归查询变得简单。

    MS SQL Server在最新2005的版本中,终于支持递归查询了,相比起Oracle和DB2,落后了好多年哟!!

  • 相关阅读:
    04-JQuery
    03-JavaScript
    02-CSS&JS
    01-HTML
    [LeetCode]Insert Interval
    [shell编程]正则表达式
    [LeetCode]Jump Game II
    [LeetCode]Jump Game
    [LeetCode]Wildcard Matching
    [shell编程]初识sed和gawk
  • 原文地址:https://www.cnblogs.com/jobs/p/22190.html
Copyright © 2011-2022 走看看