一条稍微有点怪异的SQL?

xiaoweialien 2009-05-15 10:12:09

A
1
2
3
5
6
8

求一条SQL语句,找出第一个不在顺序中的数字,既找出4来。
...全文
68 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿三 2009-05-15
  • 打赏
  • 举报
回复
SQL> select * from t1;

ID
----------
1
2
3
5
7
8
9
15

已选择8行。

SQL> select min(id)+1 from
2 (select id,lead(id,1,id) over(order by id)-id id1 from t1)
3 where id1 not in (1,0);

MIN(ID)+1
----------
4
xiaoweialien 2009-05-15
  • 打赏
  • 举报
回复
这次对了,呵呵,谢谢
xiaoweialien 2009-05-15
  • 打赏
  • 举报
回复
朙日驕阳,不行呀,查出来还是1,2,3,5,6
zzlb0224 2009-05-15
  • 打赏
  • 举报
回复
同意用rownum
ldw2545398 2009-05-15
  • 打赏
  • 举报
回复
SELECT B.B
FROM A, (SELECT ROWNUM B FROM DUAL CONNECT BY ROWNUM < 8) B
WHERE A.A(+) = B.B
AND A.A IS NULL;
呵呵不好意思看错题了~ 这个是对的
ldw2545398 2009-05-15
  • 打赏
  • 举报
回复
错了
SELECT *
FROM A
WHERE NOT EXISTS (SELECT 'x'
FROM (SELECT ROWNUM B FROM DUAL CONNECT BY ROWNUM < 8) B
WHERE B.B = A.A);
ldw2545398 2009-05-15
  • 打赏
  • 举报
回复
SELECT *
FROM A
WHERE EXISTS (SELECT 'x'
FROM (SELECT ROWNUM B FROM DUAL CONNECT BY ROWNUM < 8) B
WHERE B.B = A.A);
moqingcn 2009-05-15
  • 打赏
  • 举报
回复
up
浪尖赏花 2009-05-15
  • 打赏
  • 举报
回复
select min(num) from 
(select t.字段,rownum num from 表 t)
where 字段!=num

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧