91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle樹查詢(start with connect by prior)探究

發布時間:2020-04-05 19:31:18 來源:網絡 閱讀:747 作者:孤月2012 欄目:關系型數據庫

oracle樹查詢的最重要的語法結構是:select…start with…connect by…prior,通過該查詢可以將表中的關系以樹的形式展示出來。

1、創建測試表及數據:

--創建測試表

CREATE TABLE YAG_TREE(

     T_ID NUMBER(10) NOT NULL, --id

     T_CONTEXT VARCHAR2(20),   --內容

     PARENTID NUMBER(10)       --父 id

);

--創建序列

CREATE SEQUENCE SEQ_YAG START WITH 1 MAXVALUE 100 INCREMENT BY 1 NOCYCLE CACHE 10;

--生成父節點數據

BEGIN

  FOR I IN 1..5 LOOP

    INSERT INTO YAG_TREE VALUES(SEQ_YAG.NEXTVAL,'父節點'||SEQ_YAG.CURRVAL,NULL);

    COMMIT;

  END LOOP;    

END;

--生成一級節點數據

BEGIN

  FOR I IN 1..15 LOOP

    IF I <=3 THEN 

      INSERT INTO YAG_TREE VALUES(SEQ_YAG.NEXTVAL,'一級節點'||SEQ_YAG.CURRVAL,1);

    ELSIF I<=6 THEN

      INSERT INTO YAG_TREE VALUES(SEQ_YAG.NEXTVAL,'一級節點'||SEQ_YAG.CURRVAL,2);

    ELSIF I<=9 THEN

      INSERT INTO YAG_TREE VALUES(SEQ_YAG.NEXTVAL,'一級節點'||SEQ_YAG.CURRVAL,3);

    ELSIF I<=12 THEN

      INSERT INTO YAG_TREE VALUES(SEQ_YAG.NEXTVAL,'一級節點'||SEQ_YAG.CURRVAL,4);

    ELSIF I<=15 THEN

      INSERT INTO YAG_TREE VALUES(SEQ_YAG.NEXTVAL,'一級節點'||SEQ_YAG.CURRVAL,5);

    COMMIT;

    END IF;

  END LOOP;    

END;

--生成二級節點數據

BEGIN

  FOR I IN 1..15 LOOP

    INSERT INTO YAG_TREE VALUES(SEQ_YAG.NEXTVAL,'二級節點'||SEQ_YAG.CURRVAL,SEQ_YAG.CURRVAL-15);

    COMMIT;

  END LOOP;    

END;

2、樹查詢應用:

--樹查詢1:查詢父節點id=1的下面所有子節點(即所有后代)

SELECT LEVEL /*樹的深度*/,SYS_CONNECT_BY_PATH(T_CONTEXT, '--->') /*樹的路徑*/,A.*

  FROM YAG_TREE A

 START WITH T_ID = 1

CONNECT BY PRIOR T_ID = PARENTID;


LEVEL       SYS_CONNECT_BY_PATH           T_ID         T_CONTEXT         PARENTID

-------- ----------------------------- ----------- -------------------- -----------

1        父節點                             11            父節點           1

2        父節點1--->一級節點                66           一級節點6         1

3        父節點1--->一級節點6--->二級節點21 21           二級節點21        6

2        父節點1--->一級節點7               7            一級節點7         1

3        父節點1--->一級節點7--->二級節點22 22           二級節點22        7

2        父節點1--->一級節點8               8            一級節點8         1

3        父節點1--->一級節點8--->二級節點23 23           二級節點23        8


--樹查詢2:查詢某個節點的所有父節點(即所有先代)

SELECT * FROM YAG_TREE START WITH T_ID=26 CONNECT BY PRIOR PARENTID=T_ID;


    T_ID      T_CONTEXT           PARENTID

----------- -------------------- -----------

       26    二級節點26                11

       11    一級節點11                2

       2     父節點2   


<-------待續-------->

學習資源:http://www.cnblogs.com/linjiqin/archive/2013/06/24/3152674.html

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

酒泉市| 渭源县| 庆元县| 汝南县| 珲春市| 都安| 临汾市| 灵璧县| 宜黄县| 鲁甸县| 扶风县| 得荣县| 武胜县| 宁海县| 杨浦区| 乐山市| 南丰县| 怀仁县| 平利县| 祁门县| 中西区| 乐业县| 延庆县| 凤山县| 罗城| 泉州市| 灵台县| 五原县| 宁国市| 乃东县| 吐鲁番市| 天长市| 营口市| 西华县| 岑溪市| 黔西县| 商城县| 洪湖市| 团风县| 祁门县| 邮箱|