Heim  >  Artikel  >  Datenbank  >  Oracle中的树查询与CASE查询

Oracle中的树查询与CASE查询

WBOY
WBOYOriginal
2016-06-07 17:03:281037Durchsuche

当表具有层次结构数据时,通过使用层次查询可以更直观的显示数据结果,并显示其数据之间的层次关系。如下查询例子:

当表具有层次结构数据时,通过使用层次查询可以更直观的显示数据结果,并显示其数据之间的层次关系。如下查询例子:

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;

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Oracle block cleanout 说明Nächster Artikel:Oracle ORA_ROWSCN 伪列 说明