- UID
- 1249
- 阅读权限
- 100
- 帖子
- 18619
- 精华贴数
- 11
- 技术排名
- 40
- 技术积分
- 33853
- 社区排名
- 573
- 社区积分
- 3863
- 注册时间
- 2001-10-18
- 精华贴数
- 11
- 技术积分
- 33853
- 社区积分
- 3863
- 注册时间
- 2001-10-18
- 论坛徽章:
- 109
|
发表于 2005-10-12 13:35:30
|显示全部楼层
Cool!!!!!!!!
原来可以这么解的
[php]
SELECT /*+ordered */
T2.serial_no + 1, MIN (t3.serial_no) - 1
FROM T T1, T T2, T t3
WHERE T1.serial_no(+) = (T2.serial_no + 1) AND T1.serial_no IS NULL
AND t3.serial_no > T2.serial_no
GROUP BY T2.serial_no
……。。。。
[/php]
解决思路:
1。用not exists /not in ,条件 : t1.serial_no = t2.serial_no + 1
2。参考http://www.itpub.net/406784.html , 将not exists /not in 改为outer join + is null 格式
3。加上 min 条件,确定上下限
有空再列出详细步骤 |
|