Welcome 微信登录

首页 / 数据库 / MySQL / Oracle中的树查询与CASE查询

当表具有层次结构数据时,通过使用层次查询可以更直观的显示数据结果,并显示其数据之间的层次关系。如下查询例子:select lpad(" ",3*(t2.grl_grouplevel-1))||t1.cif_namecn from cb_cst_inf t1,cs_group_rel t2 where t1.cif_cstno=t2.grl_cstid 
 start with t2.grl_cstid ="CB10001810" and t2.grl_groupid="10002135"
 connect by prior t2.grl_cstid = t2.grl_uplevelid;
--cs_group_rel表中grl_uplevelid字段体现层次关系,最上级grl_uplevelid为空
--START WITH :用于指定层次查询的跟行
--CONNECT BY :用于指定父行和子行之间的关系,在这个条件中必须使用PRIOR引用父行,语法如下:...PRIOR expr=expr 或 ...expr=PRIOR expr CASE查询:
select lpad(" ",5*(t2.grl_grouplevel-1))||t1.cif_namecn name,
 case when t2.grl_grouplevel="1" then "总公司"
      when t2.grl_grouplevel="2" then "一级分公司"
 else "一级以下分公司" end level_name  from cb_cst_inf t1,cs_group_rel t2 where t1.cif_cstno=t2.grl_cstid  --and t1.cif_cstno="CB10001810"
 start with t2.grl_uplevelid is null and t2.grl_groupid="10002024"
 connect by prior t2.grl_cstid = t2.grl_uplevelid;Ubuntu 10.04下64位编译环境下安装Oracle Instant ClientOracle listener 详解(“DEDICATED” established:0 refused:0)相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数