婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle SQL樹形結(jié)構(gòu)查詢

Oracle SQL樹形結(jié)構(gòu)查詢

熱門標(biāo)簽:愛客外呼系統(tǒng)怎么樣 百度地圖標(biāo)注途經(jīng)點 圖吧網(wǎng)站地圖標(biāo)注 山東crm外呼系統(tǒng)軟件 開發(fā)外呼系統(tǒng) 地圖標(biāo)注養(yǎng)老院 慧營銷crm外呼系統(tǒng)丹丹 哈爾濱電話機器人銷售招聘 哪個400外呼系統(tǒng)好

oracle中的select語句可以用START WITH...CONNECT BY PRIOR子句實現(xiàn)遞歸查詢,connect by 是結(jié)構(gòu)化查詢中用到的,其基本語法是:

復(fù)制代碼 代碼如下:
select * from tablename start with cond1
connect by cond2
where cond3;

簡單說來是將一個樹狀結(jié)構(gòu)存儲在一張表里,比如一個表中存在兩個字段:

id,parentid那么通過表示每一條記錄的parent是誰,就可以形成一個樹狀結(jié)構(gòu)。

用上述語法的查詢可以取得這棵樹的所有記錄。

其中COND1是根結(jié)點的限定語句,當(dāng)然可以放寬限定條件,以取得多個根結(jié)點,實際就是多棵樹。

COND2是連接條件,其中用PRIOR表示上一條記錄,比如 CONNECT BY PRIOR ID=PRAENTID就是說上一條記錄的ID是本條記錄的PRAENTID,即本記錄的父親是上一條記錄。

COND3是過濾條件,用于對返回的所有記錄進行過濾。

對于oracle進行簡單樹查詢(遞歸查詢)

DEPTID NUMBER 部門id
PAREDEPTID NUMBER 父部門id(所屬部門id)
NAME CHAR (40 Byte) 部門名稱

通過子節(jié)點向根節(jié)點追朔.

復(fù)制代碼 代碼如下:
select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid

通過根節(jié)點遍歷子節(jié)點.

復(fù)制代碼 代碼如下:
select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid

可通過level 關(guān)鍵字查詢所在層次.

復(fù)制代碼 代碼如下:
select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid

PS:start with 后面所跟的就是就是遞歸的種子,也就是遞歸開始的地方;

connect by  prior后面的字段順序是有講究的;

若prior缺省:則只能查詢到符合條件的起始行,并不進行遞歸查詢;

例:

復(fù)制代碼 代碼如下:
select * from table
start with org_id = 'HBHqfWGWPy'
connect by prior org_id = parent_id;

簡單說來是將一個樹狀結(jié)構(gòu)存儲在一張表里,比如一個表中存在兩個字段:

org_id,parent_id那么通過表示每一條記錄的parent是誰,就可以形成一個樹狀結(jié)構(gòu)。

用上述語法的查詢可以取得這棵樹的所有記錄。

其中:

條件1 是根結(jié)點的限定語句,當(dāng)然可以放寬限定條件,以取得多個根結(jié)點,實際就是多棵樹。

條件2 是連接條件,其中用PRIOR表示上一條記錄,

比如 CONNECT BY PRIOR org_id = parent_id就是說上一條記錄的org_id 是本條記錄的parent_id,即本記錄的父親是上一條記錄。

條件3 是過濾條件,用于對返回的所有記錄進行過濾。

簡單介紹如下:

在掃描樹結(jié)構(gòu)表時,需要依此訪問樹結(jié)構(gòu)的每個節(jié)點,一個節(jié)點只能訪問一次,其訪問的步驟如下:

第一步:從根節(jié)點開始;

第二步:訪問該節(jié)點;

第三步:判斷該節(jié)點有無未被訪問的子節(jié)點,若有,則轉(zhuǎn)向它最左側(cè)的未被訪問的子節(jié)點,并執(zhí)行第二步,否則執(zhí)行第四步;

第四步:若該節(jié)點為根節(jié)點,則訪問完畢,否則執(zhí)行第五步;

第五步:返回到該節(jié)點的父節(jié)點,并執(zhí)行第三步驟。

總之:掃描整個樹結(jié)構(gòu)的過程也即是中序遍歷樹的過程。

1.樹結(jié)構(gòu)的描述

樹結(jié)構(gòu)的數(shù)據(jù)存放在表中,數(shù)據(jù)之間的層次關(guān)系即父子關(guān)系,通過表中的列與列間的關(guān)系來描述, 如 EMP 表中的 EMPNO 和 MGR 。 EMPNO 表示該雇員的編號, MGR 表示領(lǐng)導(dǎo)該雇員的人的編號,即子節(jié)點的 MGR 值等于父節(jié)點的 EMPNO 值。在表的每一行中都有一個表示父節(jié)點的 MGR (除根節(jié)點外),通過每個節(jié)點的父節(jié)點,就可以確定整個樹結(jié)構(gòu)。

在 SELECT 命令中使用 CONNECT BY 和 START WITH 子句可以查詢表中的樹型結(jié)構(gòu)關(guān)系。其命令格式如下:

SELECT 。。。

CONNECT BY {PRIOR 列名 1= 列名 2| 列名 1=PRIOR 裂名 2}

[START WITH] ;

其中: CONNECT BY 子句說明每行數(shù)據(jù)將是按層次順序檢索,并規(guī)定將表中的數(shù)據(jù)連入樹型結(jié)構(gòu)的關(guān)系中。 PRIORY 運算符必須放置在連接關(guān)系的兩列中某一個的前面。對于節(jié)點間的父子關(guān)系, PRIOR 運算符在一側(cè)表示父節(jié)點,在另一側(cè)表示子節(jié)點,從而確定查找樹結(jié)構(gòu)是的順序是自頂向下還是自底向上。在連接關(guān)系中,除了可以使用列名外,還允許使用列表達 式。 START WITH 子句為可選項,用來標(biāo)識哪個節(jié)點作為查找樹型結(jié)構(gòu)的根節(jié)點。若該子句被省略,則表示所有滿足查詢條件的行作為根節(jié)點。

START WITH: 不但可以指定一個根節(jié)點,還可以指定多個根節(jié)點。

2.關(guān)于 PRIOR

運算符 PRIOR 被放置于等號前后的位置,決定著查詢時的檢索順序。

PRIOR 被置于 CONNECT BY 子句中等號的前面時,則強制從根節(jié)點到葉節(jié)點的順序檢索,即由父節(jié)點向子節(jié)點方向通過樹結(jié)構(gòu),我們稱之為自頂向下 的方式。如:

CONNECT BY PRIOR EMPNO=MGR

PIROR 運算符被置于 CONNECT BY 子句中等號的后面時,則強制從葉節(jié)點到根節(jié)點的順序檢索,即由子節(jié)點向父節(jié)點方向通過樹結(jié)構(gòu),我們稱之為自底向上 的方式。例如:

CONNECT BY EMPNO=PRIOR MGR

在這種方式中也應(yīng)指定一個開始的節(jié)點。

3.定義查找起始節(jié)點

在自頂向下查詢樹結(jié)構(gòu)時,不但可以從根節(jié)點開始,還可以定義任何節(jié)點為起始節(jié)點,以此開始向下查找。這樣查找的結(jié)果就是以該節(jié)點為開始的結(jié)構(gòu)樹的一枝。

4.使用 LEVEL

在具有樹結(jié)構(gòu)的表中,每一行數(shù)據(jù)都是樹結(jié)構(gòu)中的一個節(jié)點,由于節(jié)點所處的層次位置不同,所以每行記錄都可以有一個層號。層號根據(jù)節(jié)點與根節(jié)點的距離確定。不論從哪個節(jié)點開始,該起始根節(jié)點的層號始終為 1 ,根節(jié)點的子節(jié)點為 2 , 依此類推。

5.節(jié)點和分支的裁剪

在對樹結(jié)構(gòu)進行查詢時,可以去掉表中的某些行,也可以剪掉樹中的一個分支,使用 WHERE 子句來限定樹型結(jié)構(gòu)中的單個節(jié)點,以去掉樹中的單個節(jié)點,但它卻不影響其后代節(jié)點(自頂向下檢索時)或前輩節(jié)點(自底向頂檢索時)。

6.排序顯示

象在其它查詢中一樣,在樹結(jié)構(gòu)查詢中也可以使用 ORDER BY 子句,改變查詢結(jié)果的顯示順序,而不必按照遍歷樹結(jié)構(gòu)的順序。

===================補充===================

Start with...Connect By子句遞歸查詢一般用于一個表維護樹形結(jié)構(gòu)的應(yīng)用。

創(chuàng)建示例表:

復(fù)制代碼 代碼如下:
CREATE TABLE TBL_TEST
(
 ID NUMBER,
 NAME VARCHAR2(100 BYTE),
 PID NUMBER DEFAULT 0
);

插入測試數(shù)據(jù):

復(fù)制代碼 代碼如下:
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');

從Root往樹末梢遞歸

復(fù)制代碼 代碼如下:
select * from TBL_TEST
start with id=1
connect by prior id = pid

從末梢往樹ROOT遞歸

復(fù)制代碼 代碼如下:
select * from TBL_TEST
start with id=5
connect by prior pid = id

您可能感興趣的文章:
  • Oracle中scott表結(jié)構(gòu)與簡單查詢實例分析
  • oracle復(fù)制表結(jié)構(gòu)和復(fù)制表數(shù)據(jù)語句分享
  • Oracle 11g Release (11.1) 索引底層的數(shù)據(jù)結(jié)構(gòu)
  • oracle 數(shù)據(jù)庫學(xué)習(xí) 基本結(jié)構(gòu)介紹
  • BS結(jié)構(gòu)中使用PHP訪問ORACLE LOB
  • oracle邏輯結(jié)構(gòu)分析

標(biāo)簽:承德 開封 和田 青島 固原 武漢 甘肅 周口

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle SQL樹形結(jié)構(gòu)查詢》,本文關(guān)鍵詞  Oracle,SQL,樹形,結(jié)構(gòu),查詢,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle SQL樹形結(jié)構(gòu)查詢》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle SQL樹形結(jié)構(gòu)查詢的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久久久久久久久久久久久久99| 欧美综合视频在线观看| 久久久精品综合| 亚洲不卡在线观看| 欧美日韩亚洲综合在线 | 99久久国产综合色|国产精品| ...xxx性欧美| 成人高清免费在线播放| 午夜精品一区二区三区免费视频| 亚洲精品一区二区三区99| 亚洲综合色网站| 欧美精品一区二区在线播放| 97久久超碰精品国产| 国产精品麻豆视频| 日韩欧美www| 国产一区二区在线观看免费| 亚洲日本欧美天堂| 337p粉嫩大胆色噜噜噜噜亚洲 | 欧美乱妇20p| 久久9热精品视频| 亚洲一级二级三级在线免费观看| 精品国产精品一区二区夜夜嗨| 久久午夜色播影院免费高清 | 精品剧情v国产在线观看在线| av一区二区不卡| 亚洲一区二区美女| 国产日韩欧美综合一区| 日韩午夜在线观看| 欧美巨大另类极品videosbest | 欧美午夜精品理论片a级按摩| 国产伦精品一区二区三区免费| 五月开心婷婷久久| 2023国产精品| 欧美一级理论性理论a| 99精品久久99久久久久| 国产成人精品在线看| 亚洲乱码日产精品bd| 国产精品国产三级国产有无不卡 | 欧美一区二区三区在线观看 | 日韩一级视频免费观看在线| 国产黄色91视频| 亚洲国产一二三| 久久精品国产免费| 国产乱码精品一品二品| 国产欧美日韩在线看| 在线影院国内精品| 色综合激情久久| 色妞www精品视频| 色先锋久久av资源部| 色综合视频一区二区三区高清| 欧美三级在线看| 欧美色图激情小说| av一区二区不卡| 99国内精品久久| 国产精品天干天干在观线| 欧美在线影院一区二区| 色偷偷久久人人79超碰人人澡| 日本二三区不卡| 欧美体内she精高潮| 制服丝袜亚洲精品中文字幕| 69久久99精品久久久久婷婷| 欧美日韩一级视频| 免费成人av在线| 国产成人精品亚洲日本在线桃色 | 欧洲精品在线观看| 国产一区三区三区| 免费在线观看成人| 日韩1区2区3区| 国产成人无遮挡在线视频| 波多野结衣在线一区| 国产一区二区成人久久免费影院| 丰满少妇在线播放bd日韩电影| 91麻豆精东视频| 欧美军同video69gay| 国产欧美日韩中文久久| 欧美成人精品福利| 国产精品国产a| 国产精品嫩草影院com| 一区二区三区免费观看| 免费在线成人网| 不卡av在线网| 日韩一区二区视频| 蜜臀av性久久久久蜜臀aⅴ| 欧美日本一道本| 偷拍与自拍一区| 91国在线观看| 亚洲天堂网中文字| 精品盗摄一区二区三区| 久久精品一区二区| 国产乱淫av一区二区三区| 91精品欧美综合在线观看最新| 91小宝寻花一区二区三区| 欧美艳星brazzers| 精品国产露脸精彩对白| 欧美三级一区二区| 中文字幕乱码一区二区免费| 五月婷婷久久综合| 99久久99久久免费精品蜜臀| 国产精品 欧美精品| 欧美午夜精品一区二区三区 | av一区二区三区黑人| 欧美电影免费观看完整版| 亚洲精品欧美二区三区中文字幕| 人人爽香蕉精品| 91在线国产福利| 欧美日韩视频一区二区| 亚洲精品一区二区三区蜜桃下载 | 国产精品不卡一区二区三区| 91成人网在线| 国产精品久久久久久久午夜片| 亚洲妇女屁股眼交7| 91麻豆精品国产| 亚洲国产精品麻豆| 在线精品视频小说1| 国产精品国产自产拍高清av王其| 久久99国产精品免费网站| 99视频有精品| 日韩欧美一区中文| 青青草97国产精品免费观看 | 亚洲欧美综合另类在线卡通| 国产美女在线精品| 26uuu精品一区二区 | 国产精品羞羞答答xxdd| 91猫先生在线| 日日摸夜夜添夜夜添国产精品 | 欧美丰满高潮xxxx喷水动漫| 婷婷丁香久久五月婷婷| 欧美日高清视频| 蜜臀av亚洲一区中文字幕| 91精品国产欧美一区二区成人| 五月激情综合婷婷| 4438x亚洲最大成人网| 精品日韩一区二区| 91免费看`日韩一区二区| 亚洲精品国产精华液| 一区二区三区在线看| 欧美视频在线一区二区三区| 水野朝阳av一区二区三区| 日本一区二区不卡视频| av激情成人网| 精品国免费一区二区三区| 精品一区二区三区av| 夜夜爽夜夜爽精品视频| 丰满放荡岳乱妇91ww| 欧美女孩性生活视频| 经典一区二区三区| 国产精品成人一区二区艾草| 欧美日韩高清一区二区| 精品一二三四区| 亚洲丝袜另类动漫二区| 欧美日韩激情在线| 国产河南妇女毛片精品久久久| 婷婷一区二区三区| 久久精品日产第一区二区三区高清版 | 久久品道一品道久久精品| 成人网男人的天堂| 亚洲超碰97人人做人人爱| **性色生活片久久毛片| 欧美日本国产一区| 久久久亚洲国产美女国产盗摄 | 日韩欧美黄色影院| 中文av一区二区| 欧美本精品男人aⅴ天堂| 成人黄色在线网站| 裸体一区二区三区| 亚洲精品国产一区二区三区四区在线| 欧美色手机在线观看| 国产黄人亚洲片| 视频一区欧美精品| 亚洲国产精品激情在线观看| 欧美日本在线看| 亚洲综合久久久久| 欧美刺激脚交jootjob| 91激情在线视频| 国产成人在线视频播放| 奇米综合一区二区三区精品视频| 亚洲欧美国产三级| 亚洲香肠在线观看| 国产在线精品一区二区不卡了| 夜夜爽夜夜爽精品视频| 欧美韩国日本一区| 日韩欧美一区二区久久婷婷| 成人免费视频播放| 久久精品免费观看| 亚洲成a人片在线观看中文| 亚洲v精品v日韩v欧美v专区| 亚洲色图在线看| 久久久久久夜精品精品免费| 欧美精品久久一区二区三区| 99r国产精品| 成人国产精品免费| 成人午夜视频网站| 日韩欧美123| 久久久久久久久久久久电影| 欧美一区二区三区四区高清 | 蜜臀91精品一区二区三区| 亚洲高清视频在线| 国产欧美日韩视频在线观看| 国产99久久久国产精品| 国产伦精品一区二区三区免费 |