a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 177|回复: 1

[考试辅导] Oracle技术:oracle中对树形结构的查询

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
现有类别表如下:   create table TBC_TM_CATEGORY (2 m! d4 s8 g) p
  CATEGORY_ID NVARCHAR2(50) not null,
& e7 e. e7 w+ `  SUPERIOR_ID NVARCHAR2(50) not null,  |* s8 A. i3 {, a
  CATEGORY_NAME NVARCHAR2(50) not null,
' q5 X. j% I" Z" G( V" W  constraint PK_TBC_TM_CATEGORY primary key (CATEGORY_ID)
3 j; j' K5 H) L6 T" v0 w  )8 W2 O" X4 p2 d
  数据如下:
4 B6 G8 x5 P6 A9 k2 G# ~  Insert into TBC_TM_CATEGORY
" q/ w! G# A2 Z7 H* a  (CATEGORY_ID, SUPERIOR_ID, CATEGORY_NAME); z$ Z, o0 h: z9 c: V+ V' G  v. ]& U
  Values7 D1 ~2 s* n( Q- R' R
  ('191', '0', '吊索类');
4 i: C0 c  [, W+ ]0 z! K- {1 c  Insert into TBC_TM_CATEGORY, ^- O: i+ d3 {9 e. L( [( W8 A  Y! Z
  (CATEGORY_ID, SUPERIOR_ID, CATEGORY_NAME). _4 ^; \( W0 k
  Values' ^/ B3 T$ K+ [3 g1 R% y" N0 S1 ~) @+ Q
  ('0', '0', '工属具类别');
4 ^& c  s0 i! w1 Z' J  Insert into TBC_TM_CATEGORY) W. A7 l. f5 e' F# P
  (CATEGORY_ID, SUPERIOR_ID, CATEGORY_NAME)) |4 V# o7 {' X; ]9 h

  v! ^1 w8 @6 f& z  Values
回复

使用道具 举报

 楼主| 发表于 2012-8-4 14:06:20 | 显示全部楼层

Oracle技术:oracle中对树形结构的查询

</p>  ('791', '191', '扳手');
, Z) M1 S/ d  r+ J  p  Insert into TBC_TM_CATEGORY
6 s5 z7 H! |2 q; x) B+ B  (CATEGORY_ID, SUPERIOR_ID, CATEGORY_NAME). B" J. Y' U2 P
  Values
% M7 U6 @+ e  h( l2 `' t  ('1896', '791', '活动扳手');
: Y, a$ [" O2 _& }4 J% S  希望得到的查询结果如下:7 Y+ ~5 y7 _8 F7 P! V
  CATEGORY_ID, SUPERIOR_ID, CATEGORY_NAME, path- L# y6 l- l& S0 f' ], e
  191 0 吊索类 工属具类别\吊索类! U7 {* j; r# K9 v. z7 r
  0 0 工属具类别 工属具类别2 ?/ K3 E, m8 b1 P$ s
  791 191 扳手 工属具类别\吊索类\扳手
; p3 b8 B2 k' `/ `" |, ^  1896 791 活动扳手 工属具类别\吊索类\扳手\活动扳手
; S: S' m" ^7 X0 A# Q7 w' A$ A, H  请高人指点!如遇正解不差分!
1 }1 d. A4 n& t4 H0 y! p  数据修改1,
# t1 b. ~3 C* P3 j  update TBC_TM_CATEGORY set superior_id=' ' where category_id = '0';
" @% R+ `1 o; \) f9 ^  category_id='0'对应的SUPERIOR_ID不能为'0',否则逻辑上混乱,请楼主思考一下:9 ?3 R2 U" o. P1 W3 \9 s( z
  SQL语句如下:% N; j" o1 H' t* E1 @+ i( q
  select
6 I  d, f8 z1 t  CATEGORY_ID , SUPERIOR_ID , CATEGORY_NAME,
6 Q2 ]# z  L; S  U1 `# a  SYS_CONNECT_BY_PATH(CATEGORY_NAME,'\') path
! Z0 P1 D! t7 M  x& b  from TBC_TM_CATEGORY$ l& z" Z) Q6 S9 h8 O
  start with superior_id=' '- P( k5 d- M( }- j' ~$ a6 V8 Z
  connect by prior category_id=superior_id
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-18 00:53 , Processed in 0.311814 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表