`

Oracle 中Start with 的巧用

阅读更多

Oracle的start with对于处理层级关系非常方便。

 

start with

connect by prior upper_indicator_id=indicator_id

 

查询上级节点的ID

 

 

start with

connect by prior  indicator_id=upper_indicator_id

查询出下级节点的ID

 

下面的SQL:

 

select * from table1

start with (talbe1.field1='K0001' or talbe1.field1='K0002' )

connect by prior  upper_indicator_id=indicator_id

 

一般我们这样书写,只是查询出某些节点下所有的上级节点,但是如果这些节点不是已知的,而是从表查询出的,就无法查询,可以采用下面的写法:

 

select * from table1 left jon table2

on talbe1.field1=table2.filed1

start with (talbe1.field1=table2.filed1)

connect by prior  upper_indicator_id=indicator_id

 

这种写法其实只是为table1增加了一列而已。

0
0
分享到:
评论

相关推荐

    oracle数据库startwith用法

    ### Oracle数据库中的START WITH 和 CONNECT BY 用法详解 在Oracle数据库中,处理层次结构数据时,`START WITH` 和 `CONNECT BY` 是非常有用的两个关键字。这些关键字可以帮助我们在查询时构建出树形或者层级结构的...

    树状数据库表:Oracle中start with...connect by prior子句用法

    `START WITH...CONNECT BY PRIOR`是Oracle SQL中的一个特性,用于处理具有层级关系的数据。这个子句允许我们遍历和查询具有父子关系的数据,例如部门和其下属子部门,或者员工和他们的上级经理。 1. **START WITH...

    Oracle start with.connect by prior子句实现递归查询

    在Oracle数据库中,`Start With.Connect By Prior`子句是执行递归查询的一种强大工具,主要用于处理层次结构数据。这类数据通常存在于组织结构、产品分类、文件系统等场景中,通过递归查询可以方便地获取树状或层级...

    Oracle_start_with_connect_by_prior_用法

    ### Oracle中的START WITH CONNECT BY PRIOR 用法详解 #### 一、概念介绍 在Oracle数据库中,`START WITH` 和 `CONNECT BY PRIOR` 是两个非常强大的特性,主要用于处理具有层级结构的数据。这两个特性可以帮助我们...

    ORACLE查询树型关系(connect_by_prior_start_with)

    ORACLE 查询树型关系(connect_by_prior_start_with) Oracle 查询树型关系是指使用 START WITH 和 CONNECT BY 子句来实现 SQL 的层次查询。从 Oracle 9i 开始,可以通过 SYS_CONNECT_BY_PATH 函数实现将父节点到...

    Oracle_start_with_connect_by_prior_用法[文].pdf

    在 Oracle 中,START WITH 语句用于指定递归查询的开始记录,而 CONNECT BY 语句用于指定递归查询的条件。 基本语法结构为:SELECT * FROM 表名 WHERE 条件 1 START WITH 条件 2 CONNECT BY PRIOR 当前表字段 = ...

    Oracle中connect by...start with...的使用

    本文章详细介绍了Oracle中connect by...start with...的用法。

    Oracle递归查询start with connect by prior的用法

    start with:表示以什么为根节点,不加限制可以写1=1,要以id为123的节点为根节点,就写为start with id =123 connect by:connect by是必须的,start with有些情况是可以省略的,或者直接start with 1=1不加限制 ...

    MySQL多种递归查询方法.docx

    在Oracle数据库中,递归查询可以通过`START WITH CONNECT BY PRIOR`语句实现。此语句允许用户按照树状结构来检索数据。 ##### 1. `START WITH CONNECT BY PRIOR`用法详解 **基本语法**: ```sql SELECT * FROM ...

    Using Java Web Start with Oracle E-Business Suite (Doc ID 2188898.1)

    文档中列出了使用Java Web Start与Oracle E-Business Suite时可能会遇到的一些已知问题和限制。这些问题可能包括特定浏览器下的兼容性问题、性能问题或其他技术限制。了解这些问题有助于提前准备解决方案。 #### 八...

    Oracle递归树形结构查询功能

    在Oracle中,树形结构查询的基本语法如下: ```sql SELECT [LEVEL], * FROM table_name START WITH 条件1 CONNECT BY PRIOR 条件2 WHERE 条件3 ORDER BY 排序字段 ``` - `LEVEL`:这是一个伪列,用于表示树的层级...

    oracle递归、迭代

    在Oracle中实现递归查询需要用到`START WITH... CONNECT BY PRIOR`语法。 #### 三、递归查询的基本语法 递归查询的基本语法如下: ```sql SELECT column_name(s) FROM table_name START WITH start_condition ...

    Oracle中树的操作

    为了展示树形结构,可以使用Oracle中的`START WITH`和`CONNECT BY PRIOR`语句。下面的查询将从根节点(名称为'ROOT')开始,递归地显示所有子节点。 ```sql SELECT ST.* FROM SCOTT_TREE ST START WITH ST.NAME = '...

    oracle中设置自增主键参考

    ### Oracle中设置自增主键方法详解 在Oracle数据库中,自增主键是一种非常实用且常见的设计模式,它能够确保表中的每一条记录都拥有一个唯一的标识符,这对于数据的管理和查询非常重要。本文将详细介绍如何在Oracle...

    oracle中sql语句用法

    根据提供的文件信息,我们可以深入探讨Oracle数据库中的几个关键知识点:序列的创建、各种类型的约束以及用户的解锁操作。接下来,我们将详细地对这些知识点进行解析。 ### 一、Oracle中序列的创建 序列在Oracle...

    Oracle中常用SQL语法和数据对象.doc

    Oracle是世界上最广泛使用的数据库管理系统之一,它提供了丰富的SQL语法和数据对象来支持高效的数据管理和处理。本文将深入探讨Oracle中的SQL语法和...CREATE SEQUENCE my_seq INCREMENT BY 1 START WITH 1 MAXVALUE ...

    Oracle查询树形结构

    首先,要了解的是,在Oracle中,树形结构数据的查询主要依赖于START WITH...CONNECT BY PRIOR语句。这种查询方式允许用户指定起始节点(根节点),并通过CONNECT BY子句定义父子节点之间的递归关系。这种方式特别...

    oracle中自动编码

    ### Oracle中的自动编码 在Oracle数据库管理中,自动编码(Auto-Increment)是一种常见的功能需求,主要用于实现表中某一字段(通常为`主键`)的自动递增填充。这在处理大量数据记录时非常有用,能有效简化数据管理...

Global site tag (gtag.js) - Google Analytics