oracleÖÐconnect by priorʵÏֵݹé²éѯ
ÊÕ¼¯µÄ¼¸ÌõÔÚoracleÖÐͨ¹ýconnect by priorÀ´ÊµÏֵݹé²éѯ
Start with...Connect By×Ó¾äµÝ¹é²éѯһ°ãÓÃÓÚÒ»¸ö±íά»¤Ê÷ÐνṹµÄÓ¦Óá£
´´½¨Ê¾Àý±í£º
CREATE TABLE TBL_TEST
(
ID NUMBER,
NAME VARCHAR2(100 BYTE),
PID NUMBER DEFAULT 0
);
²åÈë²âÊÔÊý¾Ý£º
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ÍùÊ÷Ä©Éҵݹé
select * from TBL_TEST
start with id=1
connect by prior id = pid
´ÓÄ©ÉÒÍùÊ÷ROOTµÝ¹é
select * from TBL_TEST
start with id=5
connect by prior pid = id
===============================================================================================================
ÓÐÒ»Õűí t
×ֶΣº
parent
child
Á½¸ö×ֶεĹØÏµÊǸ¸×Ó¹ØÏµ
дһ¸ösqlÓï¾ä£¬²éѯ³öÖ¸¶¨¸¸ÏÂÃæµÄËùÓеÄ×Ó
±ÈÈç
a b
a c
a e
b b1
b b2
c c1
e e1
e e3
d d1
Ö¸¶¨parent=a£¬Ñ¡³ö
a b
a c
a e
b b1
b b2
c c1
e e1
e e3
SQLÓï¾ä£º
select parent,child from test start with parent='a'
connect by prior child=p
Ïà¹ØÎĵµ£º
ǰ¼¸Ìì²Ù×÷Öз¢Ïֵģ¬Ò²²»ÖªµÀÊDz»ÊÇÎÒûÓиÄÅäÖû¹ÊÇÔõôµÄ£¬ÎÒ±¾È˵ÄÊý¾Ý¿â¾ÍÊÇĬÈϰ²×°µÄ£¬È»ºó½«scottÓû§½âËøÁË£¬scottÓû§Ó¦¸ÃÊÇÆÕͨÓû§£¬¶ø²»ÊÇDBAÓû§¡£°´ÕÕ³£Àí·ÖÎö˵£¬ËûÓ¦¸ÃÊDz»ÊÇÄܹ»½øÈëϵͳ£¬Ò»°ãµÄʱºò£¬É趨ȨÏÞµÄʱºò¶¼»áÕâÑùÉè¡£
ÎÒ½«excelµÄÊý¾Ýµ¼ÈëoracleÖУ¬Ö´ÐеÄÈÕÖ¾Îļ ......
¡¾ÒýÓá¿http://tangshd.blog.sohu.com/96035768.html
Oracle¶àÐмǼºÏ²¢/Á¬½Ó/¾ÛºÏ×Ö·û´®µÄ¼¸ÖÖ·½·¨
ÔõôºÏ²¢¶àÐмǼµÄ×Ö·û´®£¬Ò»Ö±ÊÇoracleÐÂÊÖϲ»¶ÎʵÄSQLÎÊÌâÖ®Ò»£¬¹ØÓÚÕâ¸öÎÊÌâµÄÌû×ÓÎÒ¿´¹ý²»ÏÂ30¸öÁË£¬ÏÖÔھͶÔÕâ¸öÎÊÌ⣬½øÐÐÒ»¸ö×ܽᡣ
ʲôÊǺϲ¢¶àÐÐ×Ö·û´®£¨Á¬½Ó×Ö·û´®£©Ä ......
1. Ñ¡ÓÃÊʺϵÄOracleÓÅ»¯Æ÷
¡¡¡¡OracleµÄÓÅ»¯Æ÷¹²ÓÐ3ÖÖ£º
¡¡¡¡a. RULE (»ùÓÚ¹æÔò)
¡¡¡¡b. COST (»ùÓڳɱ¾)
¡¡¡¡c. CHOOSE (Ñ¡ÔñÐÔ)
¡¡¡¡ÉèÖÃȱʡµÄÓÅ»¯Æ÷£¬¿ÉÒÔͨ¹ý¶Ôinit.oraÎļþÖÐOPTIMIZER_MODE²ÎÊýµÄ¸÷ÖÖÉùÃ÷£¬ÈçRULE£¬COST£¬CHOOSE£¬ALL_ROWS£¬FIRST_ROWS . Ä㵱ȻҲÔÚSQL¾ä¼¶»òÊǻỰ(session)¼¶¶ÔÆä½øÐи²¸Ç¡£ ......
1.ÀûÓÃÏÂÃæµÄ½Å±¾´´½¨BOOK£¬READER ºÍ BORROW ±í£¬²¢Íê³ÉºóÃæµÄÁªÏµ¡£
CREATE TABLE BOOK(
NO CHAR(8) PRIMARY KEY,
TITLE VARCHAR2(50) NOT NULL,
AUTHOR VARCHAR2(20) ,
PUBLISH VARCHAR2(20),
PUB_DA ......
1. ASCII
·µ»ØÓëÖ¸¶¨µÄ×Ö·û¶ÔÓ¦µÄÊ®½øÖÆÊý;
SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual;
A A ZERO SPACE
--------- --------- --------- ---------
65 97 48 32
2. CHR
¸ø³öÕûÊý,·µ»Ø¶ÔÓ¦µÄ×Ö·û;
SQL> select chr(54740) zhao,chr(65) chr65 from ......