您的位置:首页 > 其它

如何增加缺少的序号?

2008-09-18 08:54 169 查看
********************************************************************************

比如有下面数据
no id
1 a
2 b
4 d

我登陆的时候,先判断no,发现3不存在,就登陆到3去。如果3存在,那就取最大的4+1...
请问这个代码要怎么实现?

测试数据

CREATE TABLE T(NO NUMBER, ID VARCHAR2(10));

INSERT INTO T VALUES(1,'A');
INSERT INTO T VALUES(2,'B');

INSERT INTO T VALUES(6,'E');
INSERT INTO T VALUES(7,'F');

COMMIT;

SQL code :
给你个通用方法,如果存在空号,就把第一个空号取出,如果不存在就取最大的加1:
SELECT NVL(MAX(NO),0)+ 1 NO
FROM (SELECT NO, NO- ROW_NUMBER()OVER(ORDER BY NO) XFROM T)
WHERE X=
(SELECT MIN(X)
FROM (SELECT NO, NO- ROW_NUMBER()OVER(ORDER BY NO) XFROM T));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: