求SQL语句递归
TABLE A
字段
工程NO ...... PRENO AFTERNO
1 2
2 1 3
3 2 4
4 3 5
......
根据条件,可知道当前工程NO,想知道它前面几个工程,后面还有几个工程,尤其是最后一个工程,因为要取出总完工日期
不知道说明白没有?
TABLE A
字段
工程NO ...... PRENO AFTERNO
1 2
2 1 3
3 2 4
4 3 5
......
根据条件,可知道当前工程NO,想知道它前面几个工程,后面还有几个工程,尤其是最后一个工程,因为要取出总完工日期
不知道说明白没有?
SQL> select * from a;PROJECT_NO ORDER_DATE PRE_NO AFTER_NO
---------- ----------- ---------- ----------
1 2
2 1 3
3 2 4
4 3 5
5 4 6
select t.*,level from a t
where level > 1
start with project_no = 3
connect by project_no = prior pre_noSQL>
5 /PROJECT_NO ORDER_DATE PRE_NO AFTER_NO LEVEL
---------- ----------- ---------- ---------- ----------
2 1 3 2
1 2 3select t.*,level from a t
where level > 1
start with project_no = 3
connect by prior project_no = pre_noSQL>
5 /PROJECT_NO ORDER_DATE PRE_NO AFTER_NO LEVEL
---------- ----------- ---------- ---------- ----------
4 3 5 2
5 4 6 3
waterfirer(水清),我很佩服你.我看你在别的帖子上的SQL,都很经典!
不过还是谢谢你啊,自我陶醉中...... :)我用的都是加prior的,不加prior不知道有什么结果,可能connect by就不起作用了吧,不太清楚。
如果是PRENO=AFTERNO就是反向查询了,prior放在那边就是优先查询谁啊,其实就是向上查询和向下查询的意思。