`

树形结构查询

    博客分类:
  • SQL
阅读更多
select id, name
  from (select SUBSTR(translate(SYS_CONNECT_BY_PATH(translate(t.name,
                                                              '-',
                                                              'tmp_'),
                                                    '-'),
                                'tmp_',
                                '-'),
                      2) name,
               t.id,
               t.store_id
          from allocations t
          where t.store_id = 2301
        connect by t.father_allocation_id = prior t.id
         start with t.father_allocation_id is null)
1.语法:
       TRANSLATE(string,from_str,to_str)
   示例
        Sql代码
     1. SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual;
    2. TRANSLATE (
    3. --------------
    4. 123456ghij
    5.
    6. SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual;
    7. TRANSL
    8. ----------
    9. 123456
  补充说明
    语法:TRANSLATE(expr,from,to)
expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。
举例:
select translate('abcbbaadef','ba','#@') from dual (b将被#替代,a将被@替代)
select translate('abcbbaadef','bad','#@') from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走)
因此:结果依次为:@#c##@@def 和@#c##@@ef
语法:TRANSLATE(expr,from,to)
expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。


2.其实SYS_CONNECT_BY_PATH这个函数是oracle9i才新提出来的!
它一定要和connect by子句合用!
第一个参数是形成树形式的字段,第二个参数是父级和其子级分隔显示用的分隔符!

START WITH 代表你要开始遍历的的节点!

CONNECT BY PRIOR 是标示父子关系的对应!


这个函数使用之前必须先建立一个树,否则无用

sys_connect_by_path(字段名, 2个字段之间的连接符号),注意这里的连接符号不要使用逗号,oracle会报错,如果一定要用,可以使用replace替换一下,方法如下 REPLACE(字段名,原字符,',')。

树: start with 条件1 connect by prior 条件2

条件1如 子=XX (或父=XX)

条件2 若: 子-->根(倒树) 则为 connect by 子 = prior 根

若 根--> 子(正树) 则 connect 根 = prior 子
  • 大小: 76.3 KB
分享到:
评论

相关推荐

    mysql 树形结构查询

    mysql 树形结构查询 MySQL 树形结构查询是指使用存储过程来实现 MySQL 数据库中的树形结构查询。这种查询方式可以高效地查询树形结构的数据,并且可以根据需要设置递归深度。 MySQL 中的树形结构查询可以使用存储...

    【原创】oracle树形结构查询,层次查询,hierarical retrival

    Oracle树形结构查询,层次查询,hierarchical retrieval Oracle中的树形结构查询,也被称为层次查询或hierarchical retrieval,是一种获取树形结构数据的方法。这种方法可以将数据组织成树形结构,具有层次关系的...

    mybatis 父子级树形结构查询

    本文将深入探讨如何使用MyBatis进行父子级树形结构查询,避免繁琐的代码拼接。 首先,我们了解MyBatis的`collection`标签。在MyBatis的映射XML文件中,`<collection>`标签用于表示一对多的关系,它允许我们在一次...

    Oracle递归树形结构查询功能

    递归树形结构查询主要依赖于`CONNECT BY`和`PRIOR`关键字,它们允许我们构建复杂的层级查询,以展示数据的层次关系。 在Oracle中,树形结构查询的基本语法如下: ```sql SELECT [LEVEL], * FROM table_name START ...

    MySql 中查询树形结构的全部子项列表 Function

    本文将深入探讨如何在MySQL中查询树形结构的全部子项列表,结合提供的`MySql_Link_Function.sql`文件,我们将探讨一种有效的方法来实现这一功能。 首先,树形结构在数据库中的存储通常采用自引用的方式,即每个节点...

    jpa单表递归树形结构实现

    在本示例中,我们将探讨如何使用Spring JPA来实现单表递归树形结构。 首先,我们需要理解递归树形结构。在数据库中,树形结构通常通过自关联来表示,即一个表的某个字段引用该表自身,形成一个层级关系。对于单表...

    树形结构设计总结java demo

    在IT领域,特别是软件开发中,树形结构是一种常见的数据结构,它被广泛应用于各种场景,如文件系统、计算机科学中的编译器、图形用户界面的菜单系统等。本篇文章将深入探讨“树形结构设计”在Java环境下的实现,并...

    java-根据过滤条件显示树形结构

    在Java编程中,构建和显示树形结构是一种常见的任务,特别是在数据表示、文件系统操作或者组织复杂的对象层次结构时。本篇文章将详细讲解如何在Java中根据过滤条件来实现这一功能,同时也会提及所需的jar包。 首先...

    基于JAVA建立树形结构的算法优化.pdf

    一个高效地在内存中构建完整树形结构的算法应该能够减少数据加载次数,避免频繁的数据库查询。将树形结构需要的数据一次性加载到内存中,然后在内存中构建树形结构的所有节点,这样既减轻了数据库的压力,也能够提升...

    Oracle查询树形结构

    Oracle 查询树形结构 Oracle 查询树形结构是一种特殊的查询方式,它可以将树形结构的数据从 Oracle 数据库中检索出来。这种结构广泛应用于各种应用系统中,例如管理系统、文件系统、组织结构等。 在 Oracle 中,...

    以往的目录树在实现的时候,总是用嵌套循环的方式来读出数据库中的树形结构。非常的浪费资源,在实现目录树编辑的时候很简单。

    3. **采用更高效的树形结构算法**:例如,考虑使用“路径枚举”或“闭包表”等算法来替代传统的递归查询,这些算法可以在不增加额外字段的情况下,提供更快捷的树形结构查询能力。 4. **优化数据库设计**:重新审视...

    sqlserver 树形结构查询单表实例代码

    最后,如果你在使用过程中遇到任何问题,或者有其他关于SQL Server树形结构查询的需求,请随时提问,我们会尽心尽力提供帮助。感谢你对我们的支持,我们会持续提供更多的技术文章和解决方案来帮助大家解决问题。

    js树形结构

    JavaScript中的树形结构是一种数据结构,它模仿了自然界中的树,由节点(也称为顶点)和边(连接节点的线)组成。在JS中,树形结构常用于表示层次关系,例如文件系统、组织结构或者HTML DOM。下面将详细讨论如何在...

    Oracle SQL树形结构查询

    Oracle SQL中的树形结构查询是一种强大的工具,特别适用于处理具有层级关系的数据,如组织结构、部门树、产品分类等。这种查询方式利用`START WITH...CONNECT BY PRIOR`子句来实现递归,使得我们可以从数据库中检索...

    用递归实现C#树形结构

    在C#编程中,树形结构是一种常见的数据结构,它模拟了自然界中的树状关系,如文件系统、组织架构或阶层关系等。本篇将详细探讨如何使用递归方法来实现C#中的树形结构。 首先,理解树形结构的基本概念至关重要。在...

    树形结构(增删改查刷新等功能附SQL脚本)

    - **查询**:通过遍历树形结构,查找满足特定条件的节点。 5. **可视化展示**: - 项目使用JSP来实现前端的可视化展示,可能借助于JavaScript库如jQuery或更现代的React、Vue等,将后端返回的树形数据转化为用户...

    树形结构地址联动

    在编程中实现树形结构地址联动,可以使用各种编程语言,如JavaScript、Python、Java等,通常会用到数据结构库(如JavaScript的lodash.get和_.set,Python的jsonpath-ng等)来方便地操作和查询树形数据。 总的来说,...

    ajax树形结构

    在IT行业中,Ajax树形结构是一种常见的用户界面元素,它用于展示层次化的数据,比如组织架构、文件系统或导航菜单。这种技术结合了JavaServer Pages (JSP)、Servlet和Asynchronous JavaScript and XML (AJAX),以...

Global site tag (gtag.js) - Google Analytics