oracle 得到连续不重复的数字序列
2013-08-25 14:05
393 查看
最近的一个客户的需求实在变态至极。
需要取一个系统编号的字符串,串由3部分组成,前两个是汉字的拼音缩写,基本不难。
最后一部分是一个4位数的纯数字从0001~9999,
每次插入一条数据都要判断从0001开始到9999之间,第一个不存在的数字,已达到数字编号即不重复,有竟可能的连续,(如果没有删除的话每次只要取max+1即可,但是考考虑到可能中间有删除的,就存在了断档,那么最新插入的数据必须填补上去)。
现在的思路是取一个列表,按照数字排序,然后和rownu去对比去,再把rownum和他的数字编号去对比
rownum || systemno
1 1
2 2
3 3
4 4
5 5
6 7
那么找到第一个与rownum不相等的数字也不是不可能的
select min(rn) from (
select rownum rn,bts_system_no from (select bts_system_no from bo_bts where bts_system_no is not null
order by to_number(bts_system_no))) where rn < to_number(bts_system_no)
基本上可以得到第一个数就是6
需要取一个系统编号的字符串,串由3部分组成,前两个是汉字的拼音缩写,基本不难。
最后一部分是一个4位数的纯数字从0001~9999,
每次插入一条数据都要判断从0001开始到9999之间,第一个不存在的数字,已达到数字编号即不重复,有竟可能的连续,(如果没有删除的话每次只要取max+1即可,但是考考虑到可能中间有删除的,就存在了断档,那么最新插入的数据必须填补上去)。
现在的思路是取一个列表,按照数字排序,然后和rownu去对比去,再把rownum和他的数字编号去对比
rownum || systemno
1 1
2 2
3 3
4 4
5 5
6 7
那么找到第一个与rownum不相等的数字也不是不可能的
select min(rn) from (
select rownum rn,bts_system_no from (select bts_system_no from bo_bts where bts_system_no is not null
order by to_number(bts_system_no))) where rn < to_number(bts_system_no)
基本上可以得到第一个数就是6
相关文章推荐
- 编程实现:从字符中获取连续数组序列,如字符串"a1dl2iad9j3la5kudp7u9pn4blj8ap5u3e6ml9a"中可以得到的连续数字序列为1234556.【注】:只考虑一位,因此最长的数
- 和为S的两个数字之和&&和为s的连续正数序列
- 和为s的两个数字 VS 和为s的连续正数序列
- 找出数组中最长的连续数字序列(JavaScript实现)
- 第一个oracle 存储过程 得到随机的不会重复的字段
- 从连续整数a~b中随机选取n个不重复的数字并且降序排列(in JS)
- oracle产生连续的数字
- Find Min In Rotated Sorted Array2,包含重复数字的反转序列找最小值。
- 和为S的两个数字VS和为S的连续正数序列
- /*请高手指点:C#中得到一串数字中有连续数字的开始和结束位置?比方说0,2,5,6,7,10,12,13,15,18……中,就有5,6,7和12,13两组连续(或更多),则要得到5,6,7的始末位置
- 小明买了一些彩色的气球用绳子串在一条线上,想要装饰房间,每个气球都染上了一种颜色,每个气球的形状都是各不相同的。我们用1到9一共9个数字表示不同的颜色,如12345则表示一串5个颜色各不相同的气球串。但小明希望得到不出现重复颜色的气球串,那么现在小明需要将这个气球串剪成多个较短的气球串,小明一共有多少种剪法?如原气球串12345的一种是剪法是剪成12和345两个气球串。
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5
- oracle 得到序列的当前值
- 和为s的两个数字VS和为s的连续正数序列
- 输入具有n个数字的序列,然后去除重复,并从小到大排序
- 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5
- Q41:和为s的两个数字VS和为s的连续正数序列
- 《剑指Offer》学习笔记--面试题41:和为s的两个数字VS和为s的连续正数序列
- 剑指Offer-面试题41-和为s 的两个数字vs 和为s 的连续正数序列
- 剑指offer41:和为s的两个数字VS和为s的连续正数序列