表名 test
内容如下:testA  
  1
  3
 323
 10
 49
 50我想找到表里面testA 列  两个值相减会等于 2 的 结果。
一直找不到好的办法。
我现在用的办法是用程序先读出所有值保留在内存中,再一次去配对。
这样效率实在太低了。不知道那位高手有没有好的办法。
这里先,谢谢,谢谢,再谢谢。

解决方案 »

  1.   

    补充一下
    两个值相减会等于 2 的 结果
    也就是说select 的结果是 1 和 3。
      

  2.   

    select a,a+2
    from(
        select t.A ,rownum row_number
        from testroad t
    ) t
    where level = 2
    connect by a = prior a-2
      

  3.   

    有点看不懂,
    能不能说得清楚一点。
    比如表名 : table 列名:demo先谢谢,谢谢,再谢谢。
      

  4.   

    select t1.demo,t2.demo 
    from table t1,table t2
    where t1.demo-t2.demo=2
      

  5.   

    学习下吧,
    以前没用过connect by ,看看
      

  6.   

    一开始想复杂了,所以有没用的语句
    select demo,demo+2 
    from table
    where level = 2 
    connect by demo = prior demo-2
      

  7.   

    ORA-30928: 使用过滤状态的连接用尽了临时表空间太谢谢了,我也是第一次接触这个伪字段的sql
    可是我出现了上面的错误。
    不知道如何修改,查看临时表空间了。
      

  8.   

    用你的做法可以实现。不过速度还是有点慢。
    谢谢你了啊。
    等下如果能用到伪字段的sql  看看速度如何。
    等下再结帐,麻烦等等。
    thank you.
      

  9.   

    select id-2,id from (select id,id-lag(id)over(order by rownum) rn from test )
    where rn=2這樣也試試啊!
      

  10.   

    select id-2,id from (select id,id-lag(id)over(order by rownum) rn from test )
    where rn=2這樣也試試啊!
      

  11.   

    也可以的,不过还是出现临时表空间错误。
    这就去查查如何扩大临时表空间。
    谢谢。
    这个问题学到的sql都是以前没有接触过的。
    太感谢大家了。
    只有30分,大家就一个人分配一点。
    实在不好意思。