zoukankan      html  css  js  c++  java
  • 使用Oracle数据库的递归查询语句生成菜单树

    SQL 格式

    SELECT * FROM TABLE WHERE [...结果过滤语句]
    START WITH [...递归开始条件]
    CONNECT BY PRIOR [...递归执行条件]

    查询所有下级

    SELECT * FROM TABLE
    START WITH [ID in ('1','2')]
    CONNECT BY PRIOR [ID = ParentId]

     

    查询所有上级

    SELECT * FROM TABLE
    START WITH [ID in ('1','2')]
    CONNECT BY PRIOR [ParentId = ID ]

     

    注意:若出现重复项,可以使用 DISTINCT 进行去重

     

    实例

    <!-- SQL -->
    <select id="getReportGroupTree" resultMap="SysFunctionRm">
        select
        distinct "ID", "FUNCTION_NAME", "ICON", "FUNCTION_URL", "EXPLAINATION", "IS_DISABLED", "PARENT_FUNCTION_ID",
        "ORDER_CODE", "ORDE_RHIERARCHY_CODE", "SYSTEM_ID", "IS_DEFAULT", "IS_NEW_WIN", "FUNCTION_CODE", "FUNCTION_TYPE",
        "PRINT_SCHEME", "FUNCTION_MODE", "IS_PRINT"
        from SYS_FUNCTION WHERE function_Type = 2
        start with
        ID In
        <foreach collection="reportGroupIds" item="id" open="(" close=")" separator="," index="index">
            #{id}
        </foreach>
        connect by prior PARENT_FUNCTION_ID=ID
    </select>

     

  • 相关阅读:
    《我与我的父辈》影评
    如何进行时间规划?
    内向者相关
    修己 0815
    loj 3102
    StringSequences
    解方程
    problem B
    uoj424 count
    fft相关的复习
  • 原文地址:https://www.cnblogs.com/damaoa/p/12777401.html
Copyright © 2011-2022 走看看