比如:CustID字段中,该字段按某种规律生成,但某些已被删除。
CustID
HK00001
HK00002
HK00003
.
.
.
HK01001
HK01002
HK01004
.
.
.
其中缺了HK01003这个,现在想找出HK01001这个值,也就是第一个断点的之前的值。
实现这个功能不难,但如果数据有好几十万的时候,如何确保速度。
CustID
HK00001
HK00002
HK00003
.
.
.
HK01001
HK01002
HK01004
.
.
.
其中缺了HK01003这个,现在想找出HK01001这个值,也就是第一个断点的之前的值。
实现这个功能不难,但如果数据有好几十万的时候,如何确保速度。
解决方案 »
- 关于DBEDIT.TEXT 赋值问题?
- 如何将excel内容导入oracle,三层环境下
- 认真看一下,还有点难度的问题!
- ACCESS选择前10条,为什么结果是15条啊~~~~~
- XML节点操作的一个问题:如何通过属性值查找一个节点?
- 能否将dbgrid中的数据部分隐藏,怎么做?
- 一个使用SQL查询的问题,各位帮帮手啊!
- A user transaction is already in progress?
- 1、假如我提供一个BUTTON和一个EDIT,如何在点击BUTTON的时候,使得EDIT可以实现象COMBOBOX那样的效果。也就是有下拉框出现。2、当COMBOB
- 如何让应用程序可以动态生成DLL,然后再LOADLIBRARY(AAA.DLL)引用他?
- 怎么定位dbgrid列鼠标的位置!我只想在第三列之后写入东西!
- 我想做一个类似企业QQ的聊天程序,
其中缺了HK01003这个,现在想找出HK01002这个值,也就是第一个断点的之前的值。
实现这个功能不难,但如果数据有好几十万的时候,如何确保速度。
具体思路:
current ID-previous ID>1 则返回previous ID
HK00998
HK01002你是不是要找出其中:
HK00999
HK01000
HK01002还是得到一个逻辑值?
CustID
HK00001
HK00002
HK00003
.
.
.
HK01001
HK01002 //第一个断点
HK01004
.
.
.
HK01101
HK01102 //第二个断点
HK01104我只要找出HK01002这个值就可以了。
用二分法是最快的了,出现 (RecordCount)< Right(CustID,5)
说明有缺位第一次找第(RecordCount/2) 的位置
(RecordCount/2)= Right(CustID,5)
则说明缺位在后半个部分,
取(RecordCount/2+RecordCount)/2 继续比较
(RecordCount/2)< Right(CustID,5)
则说明缺位在前半个部分在确定位置后可补上这个缺位,然后继续比较(RecordCount/2)
直到(RecordCount)= Right(CustID,5)