`
jacen
  • 浏览: 11522 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle关于start with和decode语句使用

 
阅读更多

 

http://blog.csdn.net/wh62592855/article/details/4784130

start with ... connect by prior

该语句实现递归查询

select ... from <Table_Name>

where <Conditional-1>

start with <Conditional-2>

connect by prior <Conditional-3>

 

<Conditional-1>过滤参数,对查询返回结果的过滤

<Conditional-2>对根结点的限制语句,因为返回的结果可理解成一颗树

<Conditional-3>连接语句,prior是指上一条记录,如 connect by prior id = root_id 是指把上条记录的id作为本条记录的

root_id

 

扫描树结果表是,需要扫描每颗树的每个结点,一个节点只能访问一次,其访问步骤如下:

第一步:从根节点开始。

第二步:访问该节点。

第三步:判断该节点有无被访问的子节点,若有,则转向它最左侧的未被访问的子节点,并执行第二步,否则执行第四步。

第四步:若该节点为根节点,则访问完毕,执行第五步。

第五步:返回该节点的父节点,并访问第三步。

 

decode(<Conditional-1>,<value-1>,<result_value-1>,<value-2>,<result_value-2>,<value-3>,<result_value-3>

...default_result_value)

含义解释:decode(条件,值-1,返回值-1,值-2,返回值-2,值-3,返回值-3,默认返回值) row_name

该函数的含义也可如此表示:

if 条件==值-1 then

   return 返回值-1

elseif 条件==值-2 then

   return 返回值-2

elseif 条件==值-3 then

   return 返回值-3

else

   return 默认值

end if

分享到:
评论

相关推荐

    Oracle数据库常用sql语句的分类和常用函数.docx

    根据提供的文档信息,本文将详细解析Oracle数据库中的关键SQL语句分类、常用SQL语句以及Oracle函数的应用场景。此外,还将简要介绍Oracle数据库的一些基本管理命令,如启动与关闭服务、用户管理等。 ### 一、Oracle...

    Sql Server与Oracle的区别

    - **SELECT语句**:尽管基本语法相似,但Oracle支持特定的优化提示和集合运算符如START WITH和CONNECT BY,以及INTERSECT和MINUS,这些在Sql Server中需要通过其他方式实现,比如使用EXISTS和NOT EXISTS子句。...

    HANA-SQL参考及Oracle对照-v0.6.docx

    HANA 和 Oracle 中的递归查询语句都是使用 start with…connect by prior 语句实现的。然而,HANA 中没有 level、siblings 关键字,无法像 Oracle 有额外扩展功能。 2. 竖转横查询 竖转横查询可以将竖向的数据转换...

    oracle常用的sql语句

    Oracle数据库是一种关系型数据库管理系统(RDBMS),它使用SQL作为数据访问语言,并提供了强大的数据管理和安全性特性。 #### 三、表 表是数据库中的基本单元,由行和列组成。每一列称为一个字段或属性,每一行称为一...

    10.2.0.3版本 with改造递归查询

    Oracle数据库支持通过`CONNECT BY`和`START WITH`子句实现递归查询。递归查询通常用于处理层次结构数据,如组织结构、文件系统等。 ##### 2. WITH子句 WITH子句是Oracle SQL中的一个特性,它允许用户定义一个临时...

    TN-HDB-0003-HANA SQL参考及Oracle对照-v0.6.docx

    - 在Oracle和HANA中,都可以使用`START WITH...CONNECT BY PRIOR`来执行递归查询,以构建树形结构的数据集。例如,查询具有父子关系的部门结构。两者在语法上基本一致,但HANA不支持Oracle中的`level`和`siblings`...

    Oracle精妙的sql语句

    从给定的文件信息中,我们可以提炼出一系列与Oracle SQL相关的高级知识点,这些知识点对于数据库开发者和维护者来说是极其宝贵的资源。以下是对各部分提到的SQL语句及其功能的详细解析: ### 1. 假数据插入:`...

    Oracle数据库维护常用SQL语句集合

    根据提供的文件信息,我们可以归纳出一系列与Oracle数据库维护相关的SQL语句知识点。这些知识点主要涵盖了查询当前会话...这些SQL语句对于Oracle数据库管理员来说非常实用,可以帮助他们更好地管理和优化数据库性能。

    oracle书籍

    10. 连接函数:如CONNECT_BY_ROOT和START_WITH,用于构建复杂的树状查询,处理层次结构数据。 11. 正则表达式函数:如REGEXP_LIKE和REGEXP_SUBSTR,提供了强大的文本匹配和提取功能,提高了数据处理的精度。 通过...

    oracle从入门到精通.pdf

    2. **层次查询**:使用CONNECT BY和START WITH进行层次结构查询。 #### 二、数据库管理 **1. Oracle的构件和组件** - **Oracle架构概述**:包括实例和数据库。 **2. 数据库的物理结构** 1. **控制文件**:存储...

    oracle转DB2 对照

    - 注意点: Oracle使用 `START WITH` 和 `CONNECT BY` 进行层次查询,而DB2使用 `WITH RECURSIVE` 子句。 #### 9. 打印输出信息 - **Oracle** 和 **DB2** 都支持打印输出信息。 - Oracle示例: ```sql DBMS_...

    oracle 函数大全 参考函数 手册 速查 chm格式

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其强大的功能和灵活性使得它在企业级应用中占据了重要地位。本资源是一份Oracle函数大全的手册,包含丰富的参考函数和速查信息,以CHM(Microsoft Compiled ...

    Oracle常用函数

    学习并熟练掌握这些Oracle函数对于数据库查询和开发至关重要,它们可以帮助你编写更高效、更简洁的SQL语句。通过实践和实验,你可以更好地理解这些函数如何工作,并在实际项目中发挥它们的潜力。

    Oracle常用pl_sql语句及示例

    Oracle PL/SQL是Oracle数据库中的过程化语言,它结合了SQL(Structured Query Language)和编程语言的特性,用于创建...通过实践这些语句,可以更好地理解Oracle数据库的工作原理,并能更有效地进行数据处理和管理。

    ORACLE转DB2对照全解

    #### 十二、Decode语句 **Oracle:** ```sql DECODE(col, 'value1', val1, 'value2', val2, def_val) ``` **DB2:** ```sql CASE WHEN col = 'value1' THEN val1 WHEN col = 'value2' THEN val2 ELSE def_val ...

    Oracle考试必备知识

    - 创建序列:`CREATE SEQUENCE seq_x [START WITH n] [INCREMENT BY n];` - 使用序列:`NEXTVAL`获取下一个值;`CURRVAL`获取当前值。 3. **视图(View)**:虚拟表,基于一个或多个实际表或视图。 - 创建视图:...

    DBA对Oracle SQL编写规范的总结

    - **规范要求**:在PL/SQL中应避免使用GOTO或RETURN语句,因为它们可能会导致代码难以理解和维护。 - **示例**: ```plsql DECLARE v_age NUMBER; BEGIN v_age := 25; IF v_age &gt; 18 THEN -- 处理成年人逻辑...

    Oracle_PLSQL_语法详细手册

    例如,`CREATE SEQUENCE EmployeeID_SEQ START WITH 1 INCREMENT BY 1`。 3. **CREATE VIEW语句**:创建视图,它是基于一个或多个表的逻辑数据表,可以包含复杂的SELECT语句。例如,`CREATE VIEW High_Salaried_...

    oracle中关于死锁的处理

    ### Oracle中关于死锁的处理 #### 死锁概述 在Oracle数据库中,死锁是一种常见但必须妥善处理的问题。当两个或多个事务互相等待对方释放资源时就会发生死锁。这种情况下,没有一个事务能够继续执行,直到系统采取...

    oracle常用函数 CHM

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心优势之一。本文将基于"Oracle常用函数 CHM"这个资源,详细解析一些Oracle数据库中常见的函数及其应用,帮助你更好地理解和...

Global site tag (gtag.js) - Google Analytics