现在有一个表,有a,b两个字段。问题不太好描述。举个例子来说明。例如有如下记录:字段a 字段b
a b
x z
z t
t m
m n
n y
y y
库表中的记录是这样的。上一条记录的b 字段的值,一定是下一条记录的a 字段的值。
如果给出a字段的某个值,例如给出字段a 的值为z ,那么应该查到的结果为:tmnyy
如果给出字段a的值为m,那么应该查出的结果为n,y,y现在我是用递归来做的,就是说比如给了a字段值为z,查找到对应的b字段为t,再拿着a 字段为t,查找到对应的b字段为m ……如此下去。
但是这样做效率非常低,因为迫切希望得到一种高效的解决方案。
请各位不吝赐教,谢谢了。
a b
x z
z t
t m
m n
n y
y y
库表中的记录是这样的。上一条记录的b 字段的值,一定是下一条记录的a 字段的值。
如果给出a字段的某个值,例如给出字段a 的值为z ,那么应该查到的结果为:tmnyy
如果给出字段a的值为m,那么应该查出的结果为n,y,y现在我是用递归来做的,就是说比如给了a字段值为z,查找到对应的b字段为t,再拿着a 字段为t,查找到对应的b字段为m ……如此下去。
但是这样做效率非常低,因为迫切希望得到一种高效的解决方案。
请各位不吝赐教,谢谢了。
from tab tt
where rownum >= (select rownum id
from tab t
where t.a = &input
)
from tab
start with a='t'
connect by prior b=a
----------------------------------
start with ... connect by prior ...
是oracle啥时候个函数?
你写的好像不对,select rownum id from tab t where t.a = &input
这里的rownum 好像永远是1呀!
SELECT table.b
FROM table
START WITH table.a='a'
CONNECT BY table.a=PRIOR table.b