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为父值子段。

 

最新文章

  1. rsync+inotify实现实时同步案例--转
  2. Visual Studio 压力测试注意点
  3. 最初步的正则表达式引擎:nfa的转换规则。
  4. namenode无法自动切换的问题
  5. Unity 关于属性的get/set
  6. hdu_1253_胜利大逃亡(bfs+剪枝)
  7. CSS 简介、语法、派生选择器、id 选择器、类选择器、属性选择器
  8. Stacked Regression的详细步骤和使用注意事项
  9. 解析JSON的两种方法eval()和JSON.parse()
  10. [区块链\理解BTCD源码]GO语言实现一个区块链原型
  11. 读取导入csv csv报错iterable expected, not float
  12. Harbor修改/data目录位置
  13. python+selenium的web自动化测试之二(Jenkins自动执行)
  14. Sublime Text 2 JS 格式化插件 JsFormat
  15. 唯一索引的一种使用情景【有则U无则I】
  16. SpringBoot使用WebFlux响应式编程操作数据库
  17. gitlab hooks配置
  18. 光照问题之常见算法比较(附Python代码)
  19. etymon word air aero aeri aer ag agreement walk joint trick skill chief forget out~1
  20. filebeat配置

热门文章

  1. SpringBoot中使用mybatis-generator自动生产
  2. linq——group by
  3. IIS中添加ftp站点
  4. Ubuntu上 配置Eclipse:安装CDT
  5. UVa 11054 Gergovia的酒交易
  6. 软件测试&安全测试高峰论坛
  7. hdu 1427 速算24点 dfs暴力搜索
  8. go变量赋初值
  9. selenium-chrome-headless
  10. SQLServer随机取记录