当前位置: 代码迷 >> Oracle认证考试 >> 今日去考试,遇到一到考试题目,上机的,搞了半小时没有搞定
  详细解决方案

今日去考试,遇到一到考试题目,上机的,搞了半小时没有搞定

热度:1021   发布时间:2016-04-24 03:51:35.0
今天去考试,遇到一到考试题目,上机的,搞了半小时没有搞定!

考试题目如下:

有一张表 test(id int primary key); 里面有一批数据,1、2、3、4、5、6、8、9、11、12、17、19.......

写一句sql,找出其中不连续的数据:返回结果如下
---------id1--------id2--------
          6          8
         9         11
        12         17
        17         19
        ...        ...

我是想用select from test t1, test t2来比较来着,但是越高越复杂,没有搞出来。晚上回来想了想,也没有结果,特发帖求租!

郁闷,这里为什么没有以前向专家求救的选项啊?
------解决方案--------------------
http://topic.csdn.net/u/20090525/14/39409e4a-124c-48d7-bf90-c8ba8b9df6d0.html?seed=1081989227
------解决方案--------------------
select a.id,b.id from (select rownum as rn,id from tt) a,(select rownum as rn,id from tt) b where a.rn=b.rn+1 and a.id<>b.id+1
------解决方案--------------------
select id1, id2 from(
SELECT id id1, lead(id,1) over (order by id) as id2 from test)
where id2-id1>1;

------解决方案--------------------
最近考虑怎么净是这种题目
------解决方案--------------------
select * from (select id as id1,(select id from (select id,rownum as rnn from test) where rnn=tt.rn+1) as id2 from (select id,rownum as rn from test t) tt) where id1+1<>id2;
------解决方案--------------------
引用:
最近考虑怎么净是这种题目

实际生产中会有这样的应用吗?我没遇到过
------解决方案--------------------
楼上几位的sql写的棒,学习~
------解决方案--------------------
学习了!!
------解决方案--------------------
引用:
select id1, id2 from( 
SELECT id id1, lead(id,1) over (order by id) as id2 from test) 
where id2-id1>1; 


赞一个
  相关解决方案