转自:
http://dev.firnow.com/course/7_databases/oracle/oraclexl/20081124/152550.html
<!--[endif]-->
我们用一张简单的表COMP_INFO来存储单位信息,包含上下级隶属关系,如下三列,分别为单位ID,单位名称,上级单位ID:
CREATE TABLE COMP_INFO
(
COMP_ID VARCHAR2(5 BYTE) NOT NULL,
COMP_NAME VARCHAR2(80 BYTE) NOT NULL,
HIGHER_COMP VARCHAR2(5 BYTE)
)
TABLESPACE USERS
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCACHE
NOPARALLEL
NOMONITORING;
插入初始数据:
INSERT INTO COMP_INFO VALUES('10000','XX公司','');
INSERT INTO COMP_INFO VALUES('11000','XX公司英国公司','10000');
INSERT INTO COMP_INFO VALUES('12000','XX公司中国公司','10000');
INSERT INTO COMP_INFO VALUES('13000','XX公司日本公司','10000');
INSERT INTO COMP_INFO VALUES('12100','XX公司中国公司北京研究中心','12000');
INSERT INTO COMP_INFO VALUES('12200','XX公司中国公司上海办事处','12000');
INSERT INTO COMP_INFO VALUES('12110','XX公司中国公司北京研究一所','12100');
INSERT INTO COMP_INFO VALUES('12120','XX公司中国公司北京研究二所','12100');
INSERT INTO COMP_INFO VALUES('12130','XX公司中国公司北京研究三所','12100');
INSERT INTO COMP_INFO VALUES('12140','XX公司中国公司北京研究四所','12100');
树状查询语法如下:
SELECT [LEVEL], column, expr...
FROM table
[WHERE condition(s)]
[START WITH condition(s)]
[CONNECT BY PRIOR condition(s)]