返回頂部
關閉軟件導航
位置:首頁 > 資訊 > 其他>使用level和lpad格式化報表

  Level是層次查詢的一個偽列,如果有level,必須有connect by,start with可以沒有。Lpad是在一個string的左邊添加一定長度的字符,并且滿足中間的參數長度要求,不滿足自動添加。例如現在的需求是,輸出s_emp等級報表,root 節點的last_name 不變,比如第2 等級,也就是level=2的前面加兩個_符號,level=3的前面加4個。這樣我們可以得到一個公式就是:

無限層次樹形筆記本

  Lpad(last_name,length(last_name)+(level*2)-2,_)

  可以得出下面的語句:

  select level,id,manager_id,lpad(last_name,length(last_name)+(level*2)-2,_),title,prior

  last_name from s_emp

  start with manager_id is null

  connect by prior id=manager_id;

  select 中的prior last_name是輸出其父親的last_name.這個語句執行的結果如下:

  2.4 修剪branches

  上面已經提到,where子句會將節點刪除,但是其后代不會受到影響,connect by 中加上條件會將滿足條件的整個樹枝包括后代都刪除。要注意,如果是connect by 之后加條件正好條件選到根,那么結果和沒有加一樣,如圖所示:

  2.5 層次查詢限制

  1.層次查詢from 之后如果是table,只能是一個table無限層次樹形筆記本 ,不能有join無限層次樹形筆記本。

  2.from之后如果是view,則view不能是帶join的。

  3.使用order by子句,order 子句是在等級層次做完之后開始的,所以對于層次查詢來說沒有什么意義,除非特別關注level,獲得某行在層次中的深度,但是這兩種都會破壞層次。見3 增強特性中的使用siblings排序。

  4.在start with中表達式可以有子查詢,但是connect by中不能有子查詢。

  以上是10g之前的限制,10g之后可以使用帶join的表和視圖,connect by中可以使用子查詢。

  2.6 應用

  1)查詢每個等級上節點的數目

  先查看總共有幾個等級:

  select count(distinct level)

  from s_emp

  start with manager_id is null

  connect by prior id=manager_id;

  要查看每個等級上有多少個節點,只要按等級分組,并統計節點的數目即可,可以這樣寫:

  select level,count(last_name)

  from s_emp

  start with manager_id is null

  connect by prior id=manager_id

  group by level;

  2)格式化報表

  見2.3.

  3)查看等級關系

  有一個常見的需求,比如給定一個具體的emp 看是否對某個emp 有管理權,也就是從給定的節點尋找,看其子樹節點中能否找到這個節點。如果找到,返回,找不到,no rows returned.

  比如對于s_emp表,從根節點,也就是manager_id is null的開始找,看first_name= Elena是否被它管理,語句如下:

  select level,a.* from

  s_emp a

  where first_name=Elena –被管理的節點

  start with manager_id is null –開始節點

  connect by prior id=manager_id;

如果您覺得 使用level和lpad格式化報表 這篇文章對您有用,請分享給您的好友,謝謝
文章地址:http://www.meyanliao.com/article/other/sylevelhlpadgshbb.html
解放雙手無盡可能,有問題添加天線貓微信
主站蜘蛛池模板: 亚洲AV无码XXX麻豆艾秋| 欧洲黑大粗无码免费| 综合国产在线观看无码| 亚洲美免无码中文字幕在线| 久久精品无码专区免费青青| 无码人妻精品一区二区三区不卡| 国产羞羞的视频在线观看 国产一级无码视频在线| 亚洲综合无码AV一区二区 | 久久久久久久久无码精品亚洲日韩| 日韩AV无码不卡网站| 亚洲综合久久精品无码色欲| 国内精品无码一区二区三区| 国产精品无码MV在线观看| 免费无码成人AV在线播放不卡| 亚洲国产综合无码一区二区二三区 | 一本之道高清无码视频| 亚洲AV无码一区二区三区在线| 免费无码又爽又刺激网站直播| 人妻无码精品久久亚瑟影视| 人妻精品久久无码区| 精品人妻大屁股白浆无码| 无码中文字幕日韩专区| 亚洲精品无码Av人在线观看国产 | 无码人妻一区二区三区在线水卜樱| 精品三级AV无码一区| 色综合久久无码五十路人妻| 国产精品ⅴ无码大片在线看| 亚洲精品~无码抽插| 国产三级无码内射在线看| 十八禁视频在线观看免费无码无遮挡骂过 | 久久久精品人妻无码专区不卡| 成人无码嫩草影院| 国产精品午夜无码av体验区| 无码丰满熟妇浪潮一区二区AV| 久久久久久久久免费看无码| 激情无码亚洲一区二区三区| 亚洲Av无码国产情品久久| 综合国产在线观看无码| 久久久久无码精品亚洲日韩| 精品多人p群无码| 免费无遮挡无码视频网站|