`

oracle的语法start with和connect by nocycle

 
阅读更多

今天在调试的时候遇到下面的一个语句,不是很理解,所以就在网上搜索了下:

 

 

Select distinct l.name NAME, l.id ID
  From xb_linkroute lr, xb_link l
 Where l.id = lr.parentlinkid
 Start With lr.childLinkID = 20397058
Connect By Nocycle Prior lr.Parentlinkid = lr.Childlinkid



 

 

start with 是指从哪个节点开始递归查询

connect by nocycle,是指查询下一行的条件,或者叫连接条件 其中nocycle是当递归出现环的时候终止该分支查询,这是oracle 10G中闲添加的功能,不适用nocycle,当查询时出现环时,oracle会报错

分享到:
评论
1 楼 wcl694216530 2016-07-04  
[url][img][img][url][flash=200,200]
[flash=200,200][img][list]
[*]
引用
[/list][/img][/flash]
|
[/flash][/url][/img][/img][/url]                      

相关推荐

    ORACLE查询树型关系(connect_by_prior_start_with)

    此外, START WITH 和 CONNECT BY 子句也被用于解释 SQL 执行计划的语法规则是: ```sql SELECT ... [START WITH initial-condition] CONNECT BY [NOCYCLE] recurse-condition LEVEL ``` 其中,START WITH 子句...

    浅谈Oracle下connect by原理.pdf

    本文将探讨Oracle中的Connect By原理,并结合实例详细解释其工作方式及相关的语法和功能。 1. Connect By的原理: Connect By是Oracle用来进行层次查询的语法结构,其原理可以被理解为深度优先遍历(DFS),即从根...

    【Oracle】树状结构查询

    树状结构查询主要依赖于`START WITH`和`CONNECT BY PRIOR`这两个关键语法。`START WITH`用于指定查询的起始节点,而`CONNECT BY PRIOR`则定义了节点之间的关系,从而实现对树状结构的遍历。 #### 示例:以KING为根...

    Oracle基本语法

    START WITH 1 INCREMENT BY 1 MAXVALUE 1000000 CACHE 20 NOCYCLE; ``` 创建一个从1开始递增的序列,最大值为1000000,缓存20个值,不循环。 2. **使用序列:** ```sql INSERT INTO <表名> VALUES (seq_...

    Oracle中的树状查询(递归查询)

    - Oracle官方文档提供了更深入的解释和示例:https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/CONNECT-BY.html - CSDN社区(如`Oracle中的树状查询(递归查询) - 鱼与飞鸟 - CSDNBlog.files`...

    超全面的oracle基本语法.

    根据提供的Oracle基本语法内容,我们可以总结出以下详细的知识点: ### Oracle SQL 语法基础 #### 创建序列 (CREATE SEQUENCE) 创建一个序列 `SEQUENCE` 可以用来自动生成唯一的数值,通常用于为主键生成值。 ```...

    Oracle SQL实用讲解,最基本最实用的相关讲解

    CONNECT BY [ NOCYCLE ] condition [ START WITH condition ] ``` - `START WITH`定义了层次结构的起始行。 - `CONNECT BY`后面跟的条件决定了层次间的关联,`PRIOR`关键字用来引用上一层的值。 - `LEVEL`是伪...

    Oracle基本建表语句

    CREATE SEQUENCE <sequence_name> INCREMENT BY <increment_by_value> START WITH <start_with_value> MAXVALUE <max_value> NOCYCLE NOCACHE; ``` **示例:** ```sql CREATE SEQUENCE class_seq INCREMENT BY 1 ...

    Oracle_基本建表语句

    CREATE SEQUENCE class_seq INCREMENT BY 1 START WITH 1 MAXVALUE 999999 NOCYCLE NOCACHE; ``` 然后,在插入数据时可以使用序列的`currval`属性: ```sql INSERT INTO classes VALUES (class_seq.nextval, '软件...

    oracle 使用递归的性能提示测试对比

    `START WITH...CONNECT BY`是Oracle中的递归查询语法,`START WITH`指定开始节点,`CONNECT BY`定义父子关系,`NOCYCLE`则用于防止无限递归,`PRIOR`用来指向上一层的父节点。在实际应用中,应根据数据结构和查询...

    ORACLE 合辑

    - 递归查询基于`CONNECT BY`或`START WITH`子句实现。 - 示例:`WITH RECURSIVE cte (id, parent_id, level) AS (SELECT id, parent_id, 1 FROM table WHERE parent_id IS NULL UNION ALL SELECT t.id, t.parent_id,...

    数据库oracle

    CREATE SEQUENCE class_seq INCREMENT BY 1 START WITH 1 MAXVALUE 999999 NOCYCLE NOCACHE; ``` 然后,在插入数据时,可以使用序列的`currval`和`nextval`: ```sql INSERT INTO classes VALUES (class_seq.NEXTVAL...

    oracle 其他数据库对象

    CREATE SEQUENCE 序列名 [INCREMENT BY 增量] [START WITH 起始值] [MAXVALUE 最大值] [MINVALUE 最小值] [CYCLE | NOCYCLE] [CACHE 缓存数量] [NOCACHE]; ``` 序列的使用方法是通过`NEXTVAL`获取下一个值,通过`...

    Oracle开发基础

    - **语法**: `CREATE SEQUENCE 序列名 INCREMENT BY 增量 START WITH 起始值 MAXVALUE 最大值 NOCYCLE NOCACHE;` - **示例**: `CREATE SEQUENCE class_seq INCREMENT BY 1 START WITH 1 MAXVALUE 999999 NOCYCLE ...

    DOC命令操作oracle数据库

    create sequence seq_id start with 300 increment by 1 maxvalue 999999999 nocycle cache 10; ``` 以上就是使用`doc`命令操作Oracle数据库的一些基本知识点,涵盖了查询、数据操作、表结构管理和权限控制等多个...

    oracle创建表空间用户授权

    CREATE SEQUENCE "XZSP_WLCB"."HIBERNATE_SEQUENCE" MINVALUE 0 MAXVALUE 999999999999999999999999 INCREMENT BY 1 START WITH 342 CACHE 20 NOORDER NOCYCLE; ``` 这条命令的组成部分包括: - **序列名称**:`...

    Oracle 基本建表语句集

    CREATE SEQUENCE <序列名> INCREMENT BY <增量> START WITH <起始值> MAXVALUE <最大值> NOCYCLE NOCACHE; ``` - **示例**: ```sql CREATE SEQUENCE class_seq INCREMENT BY 1 START WITH 1 MAXVALUE 999999 ...

    oracle 的基本建表语句

    CREATE SEQUENCE class_seq INCREMENT BY 1 START WITH 1 MAXVALUE 999999 NOCYCLE NOCACHE; ``` 序列的当前值可以通过`currval`获取,如`SELECT class_seq.currval FROM dual`。插入数据使用`INSERT INTO`,更新...

    oracle笔试题

    - `CREATE SEQUENCE sequence_name [INCREMENT BY increment] [START WITH start_value] [MAXVALUE max_value] [NOCACHE] [NOCYCLE];` - **示例**:创建一个名为`stuseq`的序列,起始值为20050001,最大值为...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    10.4.4 CONNECT_BY_ISCYCLE伪列和NOCYCLE参数 284 10.4.5 CONNECT_BY_ISLEAF伪列 287 10.5 小结 291 第11章 半联结和反联结 292 11.1 半联结 292 11.2 半联结执行计划 300 11.3 控制半联结执行计划 305 ...

Global site tag (gtag.js) - Google Analytics