回答

收藏

如何在Oracle SQL中选择相关的项目组

技术问答 技术问答 223 人阅读 | 0 人回复 | 2023-09-14

我有一些数据的形式( l; Y, m8 {) Y0 P# p* d' u
Key    ID      Link       # L  m2 g4 V- ^, K1 G2 P0 s7 w5 U1 \
1      MASTER  123
7 ^+ b' E$ r8 P: [$ `8 {2      AA      123
" l0 z# M6 c( H' G- w' O8 v1 x3      AA      123+ F3 p# E/ w8 J  [% x* I
4      BB      123
0 c; T. u: E5 V( w0 x, y5 U5      MASTER  4566 k! D. _. p0 F
6      CC      456* v. o5 e/ h! Y* u$ K  b
我希望能够在同一选择中选择所有符合选择标准的链接项目,再加上链接的主文件。例如,如果我的ID为“ AA”,则希望返回ID =“ AA”的行,以及ID为“( H0 S) \$ _5 Y  E$ o) f% y
MASTER”和链接123的行:$ n1 r2 J- i. S
1      MASTER  123+ S7 T  N; o, @% M
2      AA      1232 F' ~. v2 m# `! o, E  e: o- j$ B
3      AA      123& [. o6 G; }6 }' \% I, t
我使用的是Oracle 10.2g,因此,如果有任何特殊的Oracle语法可以简化此操作,那么就可以了。# L$ W6 b# U+ j5 e
                4 Y3 q+ [/ _' H+ s( \' b# _3 p
解决方案:
0 R- `( m9 B$ J               
. Q. q* Y" I6 W, _7 _0 F
  Q' ~6 T' s  L* v2 `- Z5 j- _7 B& A1 `7 g
                这是一种方法。
$ M+ ?4 p7 I8 E- fSELECT DISTINCT key, id, link0 R& P8 C0 ^: C3 Z
  FROM the_table* Q. |8 F5 z& H, V
  START WITH id = 'AA'
; `, h& l  _& |' f/ ]  CONNECT BY id = 'MASTER' and link = PRIOR link and 'AA' = PRIOR ID
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则