主頁 > 知識庫 > Oracle層次查詢和with函數(shù)的使用示例

Oracle層次查詢和with函數(shù)的使用示例

熱門標簽:百度競價排名 AI電銷 呼叫中心市場需求 服務(wù)外包 地方門戶網(wǎng)站 鐵路電話系統(tǒng) Linux服務(wù)器 網(wǎng)站排名優(yōu)化
開發(fā)中大家應(yīng)該都做過什么類似部門管理這樣的功能,一般情況下一個部門下面還有下一級部門(子部門),這個層級就類似一棵樹。這種情況下一般會把父級部門和子級部門分成2個或者多個表,這種算是比較常規(guī)的做法;有時可能為了數(shù)據(jù)表管理的方便 就把所有的部門放在一張表里并加上一個字段標識部門之間的隸屬關(guān)系,這樣子看起來有點奇怪,但湊合用用還是Ok的。下面我跟大家分享下我的心得,也就是基于這種設(shè)計怎么做數(shù)形圖,簡單的做法就是查詢出一個list集合就可以,要怎么辦呢先來看下我的數(shù)據(jù)表
 
不難看出部門之間用fparent關(guān)聯(lián),那sql語句怎么寫呢,下面是一種偷懶的寫法
復(fù)制代碼 代碼如下:

-- ||是連接符,level可以看成常量
select t.fnum,LPAD(' ',3*level-3)||'|-'||fname fname,t.fparent,Level lev
From m_depart t
--start with后面是條件1
start with fparent is null
--connect by Prior后面是條件2
connect by Prior fnum=fparent

下面是查詢結(jié)果,查詢結(jié)果和數(shù)非常接近
 
差不多了下面還有一個比較常用的with函數(shù),一般做復(fù)雜查詢可能會用到,可以參考下面的文章

標簽:崇左 蘭州 仙桃 湖南 銅川 衡水 湘潭 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Oracle層次查詢和with函數(shù)的使用示例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266