start with的用法,其基本语法如下:

select … from tablename
start with 条件1
connect by 条件2
where 条件3;

但是我在pl/sql中写入以上格式的时候,竟然会报错!于是将where子句放在了from子句后面就成功了。

要想用到此种查询语句,就需要在表结构中设计一个子值字段和一个对应的父值字段。

select ... from ... start with...connect by的结果是将子项和父项查询出来,按照树状结构存储在一张表中。如果语句后面没有加上order by条件,那么查询出来的结果是以树的中序遍历的结果存储在结果表中。

在这个语法中,出现了一个PRIOR关键字。其大致用法如下:

select * from T_Role  where State!=-1 start with roleId='bbdb2f75' connect by prior roleId = parent_roleId order by idx 

从以上sql语句可以看出,start with后面跟的就是整棵树的根节点。网上有很多对prior关键字的解释不是很通俗易懂。按照我的理解,prior关键字在子值字段前面,那么就需要查询其子孙节点,也就是树的自顶向下查询;如果prior关键字在父值字段前面,那就是需要查询根节点的祖先节点,也就是树的自底向上查询。这样理解的确很通俗易懂,用起来也方便。上面这条sql语句就是要查询根节点为"bbdb2f75"的子孙节点。roleId为子值字段,parent_roleId为父值子段。

 

start with...connect by子句的浅用的更多相关文章

  1. Oracle学习之start with...connect by子句的用法

    转自:http://www.blogjava.net/xzclog/archive/2010/03/05/314642.html,多谢博主分享 Oracle中start with…connect by ...

  2. Oracle 之 树查询 START WITH ... CONNECT BY ...子句

    START WITH ... CONNECT BY ...子句是结构化查询中用到的,其基本语法是: select … from tablename start with 条件1 connect by ...

  3. Oracle中start with...connect by子句的用法

    http://www.blogjava.net/xzclog/archive/2010/03/05/314642.html

  4. connect by和strart with子句

    --使用connect by和strart with子句 SELECT [level],column,expression, ... FROM table [WHERE where_clause] [ ...

  5. Oracle中start with...connect by/start with…connect by prior子句的用法

    connect by 是结构化查询中用到的,其基本语法是:select … from tablenamestart with 条件1connect by 条件2where 条件3;例:select * ...

  6. Oracle中start with...connect by (prior)子句的用法

    connect by 是结构化查询中用到的,基本语法是:select … from tablenamestart with 条件1connect by 条件2where 条件3; 例:select * ...

  7. Start with connect by prior 递归查询

    在SELECT命令中使用CONNECT BY和START WITH子句可以查询表中的树型结构关系.其命令格式如下: SELECT * from CONNECT BY {PRIOR列名1=列名2|列名1 ...

  8. oracle分层查询中的start with和connect by(树结构查询)

    来源:  http://blog.csdn.net/itmyhome1990/article/details/16338637   ORACLE是一个关系数据库管理系统,它用表的形式组织数据,在某些表 ...

  9. start with connect by prior 递归查询用法

    这个子句主要是用于B树结构类型的数据递归查询,给出B树结构类型中的任意一个结点,遍历其最终父结点或者子结点. 先看原始数据: create table a_test ( parentid ), sub ...

随机推荐

  1. windows10下使用source insight出现"source insight program editor已停止工作"的问题

    一.背景 1.1 OS 版本 windows 10 1.2 source insight版本 source insight 3.50.0034 二.解决方案 删除"我的文档"下面的source ins ...

  2. POJ 2352 Stars(树状数组)题解

    Language:Default Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 52268 Accepted: 22 ...

  3. 精巧好用的DelayQueue 转

    我们谈一下实际的场景吧.我们在开发中,有如下场景 a) 关闭空闲连接.服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之.b) 缓存.缓存中的对象,超过了空闲时间,需要从缓存中移出.c) 任务超 ...

  4. jerichotab 初始化页面显示tab页中的第一个

    tab初始化默认显示第一个内容,但是tab标签显示最后一个. 源代码: $.fn.initJerichoTab({ renderTo: '#consumable', uniqueId: 'jerich ...

  5. mui --- 怎么获取百度地图定位功能

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. Mui --- 学习笔记

    1.mui 是选择器,popover 控制显示与隐藏,toggle 自动控制显示或隐藏 function showMenu(){ //mui是选择器 mui('#menu').popover('tog ...

  7. Codeforces Round #225 (Div. 2) E. Propagating tree dfs序+-线段树

    题目链接:点击传送 E. Propagating tree time limit per test 2 seconds memory limit per test 256 megabytes inpu ...

  8. go 接口

    1. package main import ( "fmt" ) type Phone interface { call() } type NokiaPhone struct { ...

  9. Mysql 统计查询

    SELECT ub.telphone, SUM(IF(b.type = 1 AND b.level = 1, 1, 0)) AS type11, SUM(IF(b.type = 1 AND b.lev ...

  10. MongoDB(课时8 模运算)

    3.4.2.3 求模 模运算使用“$mod”来完成,语法: {$mod : [除数,余数]} 范例:求模 db.students.find({"age" : {"$mod ...