日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

CUBRID学习笔记 42 Hierarchical QuerySQL层级查询

發(fā)布時(shí)間:2025/3/15 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CUBRID学习笔记 42 Hierarchical QuerySQL层级查询 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

cubrid的中sql查詢語(yǔ)法Hierarchical QuerySQL層級(jí)查詢

------ 官方文檔是英文的,看不明白可以參看ocracle的同類(lèi)函數(shù)說(shuō)明.很多都是一樣的.

ORACLE中CONNECT BY...START WITH
和ocracle的差不多 ,下面的說(shuō)明就直接抄襲過(guò)來(lái)
http://www.iwwenbo.com/oracle-start-with-connect-by/

其中,[where 條件1] 可以不需要,[where 條件1]是對(duì)根據(jù)[start with 條件2 connect by 條件3]選擇出來(lái)的記錄進(jìn)行過(guò)濾,是針對(duì)單條記錄的過(guò)濾,不會(huì)考慮樹(shù)形查詢的樹(shù)結(jié)構(gòu);
[start with 條件2 ]限定作為搜索起始點(diǎn)的條件,表示從滿足什么條件的記錄開(kāi)始查詢;[connect by 條件3]表示查詢的連接條件,樹(shù)形菜單的查詢常常是因?yàn)橛涗浥c記錄之間存在某種關(guān)系,這種關(guān)系通常就作為連接條件。

補(bǔ)充:connect by子句,通常跟關(guān)鍵字“PRIOR”一起使用,“PRIOR”關(guān)鍵字的位置通常有兩種,”CONNECT BY PRIOR ID = PID”和”CONNECT BY ID = PRIOR PID”,關(guān)鍵字位置的不同,相應(yīng)的會(huì)導(dǎo)致查詢結(jié)果的不同。

示例:
--創(chuàng)建表
create table tb_menu(
id number(10) not null,--主鍵ID
pid number(10) not null,--父菜單ID
title varchar2(50),--菜單名稱(chēng)
);
--添加數(shù)據(jù)

--父菜單
insert into tb_menu(id, pid,title ) values(1,父菜單1',0);
insert into tb_menu(id, pid,title ) values(2,父菜單2',0);
insert into tb_menu(id, pid,title ) values(3,父菜單3',0);
insert into tb_menu(id, pid,title ) values(4,父菜單4',0);
insert into tb_menu(id, pid,title ) values(5,父菜單5',0);
--一級(jí)菜單
insert into tb_menu(id, pid,title) values(6,1,'一級(jí)菜單6');
insert into tb_menu(id, pid,title) values(7,1,'一級(jí)菜單7');
insert into tb_menu(id, pid,title) values(8,1,'一級(jí)菜單8');
insert into tb_menu(id, pid,title) values(9,2,'一級(jí)菜單9');
insert into tb_menu(id, pid,title) values(10, 2, '一級(jí)菜單10');
insert into tb_menu(id, pid,title) values(11, 2, '一級(jí)菜單11');
insert into tb_menu(id, pid,title) values(12, 3,'一級(jí)菜單12');
insert into tb_menu(id, pid,title) values(13, 3,'一級(jí)菜單13');
insert into tb_menu(id, pid,title) values(14, 3,'一級(jí)菜單14');
insert into tb_menu(id, pid,title) values(15, 4,'一級(jí)菜單15');
insert into tb_menu(id, pid,title) values(16, 4,'一級(jí)菜單16');
insert into tb_menu(id, pid,title) values(17, 4,'一級(jí)菜單17');
insert into tb_menu(id, pid,title) values(18, 5,'一級(jí)菜單18');
insert into tb_menu(id, pid,title) values(19, 5,'一級(jí)菜單19');
insert into tb_menu(id, pid,title) values(20, 5,'一級(jí)菜單20');
--二級(jí)菜單
insert into tb_menu(id, title, pid) values(21, '二級(jí)菜單21',6);
insert into tb_menu(id, title, pid) values(22, '二級(jí)菜單22',6);
insert into tb_menu(id, title, pid) values(23, '二級(jí)菜單23',7);
insert into tb_menu(id, title, pid) values(24, '二級(jí)菜單24',7);
insert into tb_menu(id, title, pid) values(25, '二級(jí)菜單25',8);
insert into tb_menu(id, title, pid) values(26, '二級(jí)菜單26',9);
insert into tb_menu(id, title, pid) values(27, '二級(jí)菜單27',10);
insert into tb_menu(id, title, pid) values(28, '二級(jí)菜單28',11);
insert into tb_menu(id, title, pid) values(29, '二級(jí)菜單29',12);
insert into tb_menu(id, title, pid) values(30, '二級(jí)菜單30',13);
insert into tb_menu(id, title, pid) values(31, '二級(jí)菜單31',14);
insert into tb_menu(id, title, pid) values(32, '二級(jí)菜單32',15);
insert into tb_menu(id, title, pid) values(33, '二級(jí)菜單33',16);
insert into tb_menu(id, title, pid) values(34, '二級(jí)菜單34',17);
insert into tb_menu(id, title, pid) values(35, '二級(jí)菜單35',18);
insert into tb_menu(id, title, pid) values(36, '二級(jí)菜單36',19);
insert into tb_menu(id, title, pid) values(37, '二級(jí)菜單37',20);
--三級(jí)菜單
insert into tb_menu(id, title, pid) values(38, '三級(jí)菜單38',21);
insert into tb_menu(id, title, pid) values(39, '三級(jí)菜單39',22);
insert into tb_menu(id, title, pid) values(40, '三級(jí)菜單40',23);
insert into tb_menu(id, title, pid) values(41, '三級(jí)菜單41',24);
insert into tb_menu(id, title, pid) values(42, '三級(jí)菜單42',25);
insert into tb_menu(id, title, pid) values(43, '三級(jí)菜單43',26);
insert into tb_menu(id, title, pid) values(44, '三級(jí)菜單44',27);
insert into tb_menu(id, title, pid) values(45, '三級(jí)菜單45',28);
insert into tb_menu(id, title, pid) values(46, '三級(jí)菜單46',28);
insert into tb_menu(id, title, pid) values(47, '三級(jí)菜單47',29);
insert into tb_menu(id, title, pid) values(48, '三級(jí)菜單48',30);
insert into tb_menu(id, title, pid) values(49, '三級(jí)菜單49',31);
insert into tb_menu(id, title, pid) values(50, '三級(jí)菜單50',31);
commit;

說(shuō)明:pid字段存儲(chǔ)的是當(dāng)前菜單節(jié)點(diǎn)的上級(jí)id,如果菜單節(jié)點(diǎn)是頂級(jí)節(jié)點(diǎn),該菜單沒(méi)有上級(jí)菜單,則pid應(yīng)為null,然而在表中記錄最好不要為null,建議使用0代替,因?yàn)閚ull記錄會(huì)引起全文掃描。

2.語(yǔ)法說(shuō)明
oracle中遞歸查詢(樹(shù)形查詢)主要依托于:

select * from table_name [where 條件1] start with 條件2 connect by 條件3;
其中,[where 條件1] 可以不需要,[where 條件1]是對(duì)根據(jù)[start with 條件2 connect by 條件3]選擇出來(lái)的記錄進(jìn)行過(guò)濾,是針對(duì)單條記錄的過(guò)濾,不會(huì)考慮樹(shù)形查詢的樹(shù)結(jié)構(gòu);
[start with 條件2 ]限定作為搜索起始點(diǎn)的條件,表示從滿足什么條件的記錄開(kāi)始查詢;[connect by 條件3]表示查詢的連接條件,樹(shù)形菜單的查詢常常是因?yàn)橛涗浥c記錄之間存在某種關(guān)系,這種關(guān)系通常就作為連接條件。

補(bǔ)充:connect by子句,通常跟關(guān)鍵字“PRIOR”一起使用,“PRIOR”關(guān)鍵字的位置通常有兩種,”CONNECT BY PRIOR ID = PID”和”CONNECT BY ID = PRIOR PID”,關(guān)鍵字位置的不同,相應(yīng)的會(huì)導(dǎo)致查詢結(jié)果的不同。

3.遞歸查詢(樹(shù)形查詢)實(shí)踐
只有上面的文字說(shuō)明可能還是搞不清楚樹(shù)形查詢,不過(guò)動(dòng)手來(lái)操作一遍就清楚了。

我們從最基本的操作,逐步列出常見(jiàn)的樹(shù)查詢操作,所有的查詢以家族中的輩分作比方。

1)查詢樹(shù)中的所有頂級(jí)父節(jié)點(diǎn)(家族中輩分最大的那一代人)。假如這個(gè)樹(shù)是個(gè)目錄結(jié)構(gòu),那么第一個(gè)操作總是找出所有的頂級(jí)節(jié)點(diǎn),然后再逐個(gè)根據(jù)頂級(jí)節(jié)點(diǎn)找到其子節(jié)點(diǎn)。

select * from tb_menu m where m.pid = 0;
以上查詢得到的就是樹(shù)的所有頂級(jí)節(jié)點(diǎn),也就是家族中輩分最大的那一代人。

2)查找一個(gè)節(jié)點(diǎn)的直屬子節(jié)點(diǎn)(家族中某個(gè)長(zhǎng)輩的所有兒子),此時(shí)查找的是直屬的子類(lèi)節(jié)點(diǎn),也是用不到樹(shù)形查詢的。

select * from tb_menu m where m.pid=1;
3)查找一個(gè)節(jié)點(diǎn)的所有直屬子節(jié)點(diǎn)(家族中某個(gè)長(zhǎng)輩的所有直系子孫)。

select * from tb_menu m start with m.id=1 connect by m.pid=prior m.id;
4)查找一個(gè)節(jié)點(diǎn)的直屬父節(jié)點(diǎn)(家族中的父親),此時(shí)查找的是節(jié)點(diǎn)的直屬父節(jié)點(diǎn),也是用不到樹(shù)形查詢的

select c.id, c.title, p.id parent_id, p.title parent_title
from tb_menu c, tb_menu p
where c.pid=p.id and c.id=6
5)查找一個(gè)節(jié)點(diǎn)的所有直屬父節(jié)點(diǎn)(家族中一個(gè)孩子的所有直系長(zhǎng)輩祖先,比如父親,祖父,……)

select * from tb_menu m start with m.id=38 connect by prior m.pid=m.id;
說(shuō)明:
上面的3)和5),這兩條查詢都是樹(shù)形查詢,區(qū)別在于”prior”關(guān)鍵字的位置不同,所以決定了查詢方式的不同,查詢結(jié)果也不同。當(dāng) pid = prior id時(shí),數(shù)據(jù)庫(kù)會(huì)根據(jù)當(dāng)前的id迭代出pid與該id相同的記錄,所以查詢的結(jié)果是迭代出了所有的子類(lèi)記錄;而prior pid = id時(shí),數(shù)據(jù)庫(kù)會(huì)跟據(jù)當(dāng)前的pid來(lái)迭代出與當(dāng)前的pid相同的id的記錄,所以查詢出來(lái)的結(jié)果就是所有的父類(lèi)結(jié)果。
仔細(xì)看一下數(shù)據(jù)庫(kù)的查詢結(jié)果,可以發(fā)現(xiàn),其實(shí)3)和5)的查詢順序也是不同的,3)是自上向下檢索,5)是自下向上檢索。

以下是一系列針對(duì)樹(shù)結(jié)構(gòu)的更深層次的查詢,這里的查詢不一定是最優(yōu)的查詢方式,或許只是其中的一種實(shí)現(xiàn)而已。

6)查詢一個(gè)節(jié)點(diǎn)的兄弟節(jié)點(diǎn)(親兄弟)

--m.parent=m2.parent-->同一個(gè)父親
select * from tb_menu m
where exists (select * from tb_menu m2 where m.pid=m2.pid and m2.id=6)
7)查詢與一個(gè)節(jié)點(diǎn)同級(jí)的節(jié)點(diǎn)(族兄弟)。 如果在表中設(shè)置了級(jí)別的字段,那么在做這類(lèi)查詢時(shí)會(huì)很輕松,同一級(jí)別的就是與那個(gè)節(jié)點(diǎn)同級(jí)的,在這里列出不使用該字段時(shí)的實(shí)現(xiàn)!

with tmp as
(select a., level leaf
from tb_menu a
start with a.pid = 0
connect by a.pid = prior a.id)
select from tmp where leaf = (select leaf from tmp where id = 50);
這里使用兩個(gè)技巧,一個(gè)是使用了level來(lái)標(biāo)識(shí)每個(gè)節(jié)點(diǎn)在表中的級(jí)別,還有就是使用with語(yǔ)法模擬出了一張帶有級(jí)別的臨時(shí)表。

8)查詢一個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)的的兄弟節(jié)點(diǎn)(伯父與叔父)

with tmp as(
select tb_menu.*, level lev
from tb_menu
start with pid=0
connect by pid = prior id)

select b.
from tmp b,(select
from tmp
where id = 21 and lev = 2) a
where b.lev = 1

union all

select
from tmp
where pid = (select distinct x.id
from tmp x, --祖父
tmp y, --父親
(select
from tmp
where id = 21 and lev > 2) z --兒子
where y.id = z.pid and x.id = y.pid);
這里查詢分成以下幾步。
首先,和第7個(gè)一樣,將全表都使用臨時(shí)表加上級(jí)別;
其次,根據(jù)級(jí)別來(lái)判斷有幾種類(lèi)型,以上文中舉的例子來(lái)說(shuō),有三種情況:
(1)當(dāng)前節(jié)點(diǎn)為頂級(jí)節(jié)點(diǎn),即查詢出來(lái)的lev值為1,那么它沒(méi)有上級(jí)節(jié)點(diǎn),不予考慮。
(2)當(dāng)前節(jié)點(diǎn)為2級(jí)節(jié)點(diǎn),查詢出來(lái)的lev值為2,那么就只要保證lev級(jí)別為1的就是其上級(jí)節(jié)點(diǎn)的兄弟節(jié)點(diǎn)。
(3)其它情況就是3以及以上級(jí)別,那么就要選查詢出來(lái)其上級(jí)的上級(jí)節(jié)點(diǎn)(祖父),再來(lái)判斷祖父的下級(jí)節(jié)點(diǎn)都是屬于該節(jié)點(diǎn)的上級(jí)節(jié)點(diǎn)的兄弟節(jié)點(diǎn)。
最后,就是使用union將查詢出來(lái)的結(jié)果進(jìn)行結(jié)合起來(lái),形成結(jié)果集。

**來(lái)看看官方的**CREATE TABLE tree(ID INT, MgrID INT, Name VARCHAR(32), BirthYear INT);

INSERT INTO tree VALUES (1,NULL,'Kim', 1963);
INSERT INTO tree VALUES (2,NULL,'Moy', 1958);
INSERT INTO tree VALUES (3,1,'Jonas', 1976);
INSERT INTO tree VALUES (4,1,'Smith', 1974);
INSERT INTO tree VALUES (5,2,'Verma', 1973);
INSERT INTO tree VALUES (6,2,'Foster', 1972);
INSERT INTO tree VALUES (7,6,'Brown', 1981);

CREATE TABLE tree2(id int, treeid int, job varchar(32));

INSERT INTO tree2 VALUES(1,1,'Partner');
INSERT INTO tree2 VALUES(2,2,'Partner');
INSERT INTO tree2 VALUES(3,3,'Developer');
INSERT INTO tree2 VALUES(4,4,'Developer');
INSERT INTO tree2 VALUES(5,5,'Sales Exec.');
INSERT INTO tree2 VALUES(6,6,'Sales Exec.');
INSERT INTO tree2 VALUES(7,7,'Assistant');
INSERT INTO tree2 VALUES(8,null,'Secretary');

SELECT t.id,t.name,t2.job,level
FROM tree t INNER JOIN tree2 t2 ON t.id=t2.treeid
START WITH t.mgrid is null
CONNECT BY prior t.id=t.mgrid
ORDER BY t.id;

結(jié)果 能看到層次
id name job level
==============================================================
1 'Kim' 'Partner' 1
2 'Moy' 'Partner' 1
3 'Jonas' 'Developer' 2
4 'Smith' 'Developer' 2
5 'Verma' 'Sales Exec.' 2
6 'Foster' 'Sales Exec.' 2
7 'Brown' 'Assistant' 3

Ordering Data with the Hierarchical QuerySELECT id, mgrid, name, birthyear, level

FROM tree
START WITH mgrid IS NULL
CONNECT BY PRIOR id=mgrid
ORDER SIBLINGS BY birthyear;

id mgrid name birthyear level

2 NULL 'Moy' 1958 1 6 2 'Foster' 1972 2 7 6 'Brown' 1981 3 5 2 'Verma' 1973 2 1 NULL 'Kim' 1963 1 4 1 'Smith' 1974 2 3 1 'Jonas' 1976 2

SELECT id, mgrid, name, birthyear, level
FROM tree
START WITH mgrid IS NULL
CONNECT BY PRIOR id=mgrid
ORDER SIBLINGS BY birthyear;

level關(guān)鍵字
理解上面的,就理解下面的了

SELECT id, mgrid, name, LEVEL
FROM tree
WHERE LEVEL=2
START WITH mgrid IS NULL
CONNECT BY PRIOR id=mgrid
ORDER BY id;

還可以加條件
SELECT LEVEL FROM db_root CONNECT BY LEVEL <= 10;

CONNECT_BY_ISLEAF 關(guān)鍵字
connect_by_isleaf是葉節(jié)點(diǎn)1 不是0

SELECT id, mgrid, name, CONNECT_BY_ISLEAF
FROM tree
START WITH mgrid IS NULL
CONNECT BY PRIOR id=mgrid
ORDER BY id;

CONNECT_BY_ISCYCLE關(guān)鍵字
這個(gè)偽列功能是揪出那些“違反倫理道德”的人。
例如發(fā)現(xiàn)一個(gè)人既是另外一個(gè)人的孫子又是他的爸爸,這顯然是不合倫理的,需要盡快發(fā)現(xiàn)并進(jìn)行撥亂反正.
CREATE TABLE tree_cycle(ID INT, MgrID INT, Name VARCHAR(32));

INSERT INTO tree_cycle VALUES (1,NULL,'Kim');
INSERT INTO tree_cycle VALUES (2,11,'Moy');
INSERT INTO tree_cycle VALUES (3,1,'Jonas');
INSERT INTO tree_cycle VALUES (4,1,'Smith');
INSERT INTO tree_cycle VALUES (5,3,'Verma');
INSERT INTO tree_cycle VALUES (6,3,'Foster');
INSERT INTO tree_cycle VALUES (7,4,'Brown');
INSERT INTO tree_cycle VALUES (8,4,'Lin');
INSERT INTO tree_cycle VALUES (9,2,'Edwin');
INSERT INTO tree_cycle VALUES (10,9,'Audrey');
INSERT INTO tree_cycle VALUES (11,10,'Stone');

-- Checking a CONNECT_BY_ISCYCLE value
SELECT id, mgrid, name, CONNECT_BY_ISCYCLE
FROM tree_cycle
START WITH name in ('Kim', 'Moy')
CONNECT BY NOCYCLE PRIOR id=mgrid
ORDER BY id;
id mgrid name connect_by_iscycle
==================================================
1 NULL 'Kim' 0
2 11 'Moy' 0
3 1 'Jonas' 0
4 1 'Smith' 0
5 3 'Verma' 0
6 3 'Foster' 0
7 4 'Brown' 0
8 4 'Lin' 0
9 2 'Edwin' 0
10 9 'Audrey' 0
11 10 'Stone' 1

CONNECT_BY_ROOT 關(guān)鍵字

同一個(gè)節(jié)點(diǎn)下的節(jié)點(diǎn)的connect_by_root是一樣的

SELECT id, mgrid, name, CONNECT_BY_ROOT id
FROM tree
START WITH mgrid IS NULL
CONNECT BY PRIOR id=mgrid
ORDER BY id;

PRIOR關(guān)鍵字

下面的說(shuō)明來(lái)自oracle
運(yùn)算符PRIOR被放置于等號(hào)前后的位置,決定著查詢時(shí)的檢索順序。
PRIOR被置于CONNECT BY子句中等號(hào)的前面時(shí),則強(qiáng)制從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的順序檢索,即由父節(jié)點(diǎn)向子節(jié)點(diǎn)方向通過(guò)樹(shù)結(jié)構(gòu),我們稱(chēng)之為自頂向下的方式。如:
CONNECT BY PRIOR EMPNO=MGR
PIROR運(yùn)算符被置于CONNECT BY 子句中等號(hào)的后面時(shí),則強(qiáng)制從葉節(jié)點(diǎn)到根節(jié)點(diǎn)的順序檢索,即由子節(jié)點(diǎn)向父節(jié)點(diǎn)方向通過(guò)樹(shù)結(jié)構(gòu),我們稱(chēng)之為自底向上的方式。例如:
CONNECT BY EMPNO=PRIOR MGR
在這種方式中也應(yīng)指定一個(gè)開(kāi)始的節(jié)點(diǎn)。

官方例子
SELECT id, mgrid, name, PRIOR id as "prior_id"
FROM tree
START WITH mgrid IS NULL
CONNECT BY PRIOR id=mgrid
ORDER BY id;
id mgrid name prior_id
=====================================================
1 NULL 'Kim' NULL
2 NULL 'Moy' NULL
3 1 'Jonas' 1
4 1 'Smith' 1
5 2 'Verma' 2
6 2 'Foster' 2
7 6 'Brown' 6

SYS_CONNECT_BY_PATH SYS_CONNECT_BY_PATH (column_name, separator_char) 主要用于樹(shù)查詢(層次查詢) 以及 多列轉(zhuǎn)行SELECT id, mgrid, name, SYS_CONNECT_BY_PATH(name,'/') as [hierarchy]

FROM tree
START WITH mgrid IS NULL
CONNECT BY PRIOR id=mgrid
ORDER BY id;
id mgrid name hierarchy
==============================================================
1 NULL 'Kim' '/Kim'
2 NULL 'Moy' '/Moy'
3 1 'Jonas' '/Kim/Jonas'
4 1 'Smith' '/Kim/Smith'
5 2 'Verma' '/Moy/Verma'
6 2 'Foster' '/Moy/Foster'
7 6 'Brown' '/Moy/Foster/Brown'

單元練習(xí)例子 CREATE TABLE tbl(seq INT, id VARCHAR(10), parent VARCHAR(10));

INSERT INTO tbl VALUES (1, 'a', null);
INSERT INTO tbl VALUES (2, 'b', 'a');
INSERT INTO tbl VALUES (3, 'b', 'c');
INSERT INTO tbl VALUES (4, 'c', 'b');
INSERT INTO tbl VALUES (5, 'c', 'b');

SELECT seq, id, parent, LEVEL,
CONNECT_BY_ISCYCLE AS iscycle,
CAST(SYS_CONNECT_BY_PATH(id,'/') AS VARCHAR(10)) AS idpath
FROM tbl
START WITH PARENT is NULL
CONNECT BY NOCYCLE PARENT = PRIOR id;
seq id parent level iscycle idpath
=============================================================================
1 'a' NULL 1 0 '/a'
2 'b' 'a' 2 0 '/a/b'
4 'c' 'b' 3 0 '/a/b/c'
3 'b' 'c' 4 1 '/a/b/c/b'
5 'c' 'b' 5 1 '/a/b/c/b/c'
5 'c' 'b' 3 0 '/a/b/c'
3 'b' 'c' 4 1 '/a/b/c/b'
4 'c' 'b' 5 1 '/a/b/c/b/c'

今天之后是明天,明天之后是后天,后天之后是大后天SELECT TO_CHAR(base_month + lvl -1, 'YYYYMMDD') h_date

FROM (
SELECT LEVEL lvl, base_month
FROM (
SELECT TO_DATE('201303', 'YYYYMM') base_month FROM db_root
)
CONNECT BY LEVEL <= LAST_DAY(base_month) - base_month + 1
);
h_date
======================
'20130301'
'20130302'
'20130303'
'20130304'
'20130305'
'20130306'
'20130307'
'20130308'
'20130309'
'20130310'
'20130311'
'20130312'
'20130313'
'20130314'
'20130315'
'20130316'
'20130317'
'20130318'
'20130319'
'20130320'
'20130321'
'20130322'
'20130323'
'20130324'
'20130325'
'20130326'
'20130327'
'20130328'
'20130329'
'20130330'
'20130331'

轉(zhuǎn)載于:https://www.cnblogs.com/wang2650/p/5291759.html

總結(jié)

以上是生活随笔為你收集整理的CUBRID学习笔记 42 Hierarchical QuerySQL层级查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。