Oracle層次查詢和with函數(shù)的使用示例
更新時(shí)間:2013年07月02日 11:43:05 作者:
下面我跟大家分享下我的心得,也就是基于這種設(shè)計(jì)怎么做數(shù)形圖,簡(jiǎn)單的做法就是查詢出一個(gè)list集合就可以,要怎么辦呢先來(lái)看下我的數(shù)據(jù)表
開發(fā)中大家應(yīng)該都做過(guò)什么類似部門管理這樣的功能,一般情況下一個(gè)部門下面還有下一級(jí)部門(子部門),這個(gè)層級(jí)就類似一棵樹。這種情況下一般會(huì)把父級(jí)部門和子級(jí)部門分成2個(gè)或者多個(gè)表,這種算是比較常規(guī)的做法;有時(shí)可能為了數(shù)據(jù)表管理的方便 就把所有的部門放在一張表里并加上一個(gè)字段標(biāo)識(shí)部門之間的隸屬關(guān)系,這樣子看起來(lái)有點(diǎn)奇怪,但湊合用用還是Ok的。下面我跟大家分享下我的心得,也就是基于這種設(shè)計(jì)怎么做數(shù)形圖,簡(jiǎn)單的做法就是查詢出一個(gè)list集合就可以,要怎么辦呢先來(lái)看下我的數(shù)據(jù)表
不難看出部門之間用fparent關(guān)聯(lián),那sql語(yǔ)句怎么寫呢,下面是一種偷懶的寫法
-- ||是連接符,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ù)非常接近
差不多了下面還有一個(gè)比較常用的with函數(shù),一般做復(fù)雜查詢可能會(huì)用到,可以參考下面的文章

不難看出部門之間用fparent關(guān)聯(lián),那sql語(yǔ)句怎么寫呢,下面是一種偷懶的寫法
復(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ù)非常接近

差不多了下面還有一個(gè)比較常用的with函數(shù),一般做復(fù)雜查詢可能會(huì)用到,可以參考下面的文章
相關(guān)文章
Oracle中分組查詢group by用法規(guī)則詳解
這篇文章主要介紹了Oracle中分組查詢group by用法規(guī)則詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07sql?in查詢?cè)爻^(guò)1000條的解決方案
在oracle數(shù)據(jù)庫(kù)中sql使用in時(shí),如果in的能數(shù)超過(guò)1000就會(huì)出問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于sql?in查詢?cè)爻^(guò)1000條的解決方案,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03Hibernate Oracle sequence的使用技巧
本文介紹了關(guān)于Hibernate中如何使用Oracle sequence的問(wèn)題以及應(yīng)注意的事項(xiàng)。2009-06-06Oracle查詢語(yǔ)句中rownum與rowid的不同之處分析
這篇文章主要介紹了Oracle查詢語(yǔ)句中rownum與rowid的不同之處分析,需要的朋友可以參考下2014-07-07Oracle手動(dòng)建庫(kù)安裝部署超詳細(xì)教程
這篇文章主要介紹了Oracle手動(dòng)建庫(kù)安裝部署超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Oracle中scott表結(jié)構(gòu)與簡(jiǎn)單查詢實(shí)例分析
這篇文章主要介紹了Oracle中scott表結(jié)構(gòu)與簡(jiǎn)單查詢,實(shí)例分析Oracle查詢的相關(guān)技巧,需要的朋友可以參考下2015-04-04