另类获得连续号码的求法

原创 2006年06月02日 20:04:00

-- 另类获得连续号码的求法
 
DECLARE @Temp table (sNo varchar(50) primary key)
Insert into @Temp values('DMC060001')
Insert into @Temp values('DMC060002')
Insert into @Temp values('DMC060003')
Insert into @Temp values('DMC060006')
Insert into @Temp values('DMC060007')
Insert into @Temp values('DMC060010')
Insert into @Temp values('DMC060014') 
Insert into @Temp values('DMC060016')
Insert into @Temp values('DMC060017')
Insert into @Temp values('DMC060018')
 
DECLARE @Str varchar(20),          --保存上一字符
        @ResultStr  varchar(8000), --最后返回字符
        @New bit,                  --本次比较的标志
        @Old bit,                  --上一个比较的标志
        @EndStr varchar(20)        --用作最后一次连续的判断

Select @EndStr=max(sNo) from @Temp

update @temp set
    @ResultStr  =case when @ResultStr Is NULL then sNo else @ResultStr end ,
    @New =(case when (Right(sNo, PATINDEX('%[A-Z]%',Reverse(sNo))-1)=
                      Right(@str,PATINDEX('%[A-Z]%',Reverse(@str))-1)+1) then 1 else 0 end),
    @ResultStr  =@ResultStr+(case when (@New=0 and @old=1) then '-'+Right(@str,PATINDEX('%[A-Z]%',Reverse(@str))-1)+','+sNo
                    when (@New=0 and @old=0) then ','+sNo
                    when (sNo=@EndStr) then '-'+right(sNo,PATINDEX('%[A-Z]%',Reverse(sNo))) else '' end), 
    @old=@New, @str=sNo  
Select @ResultStr as [组合字符]

--结果
/*
组合字符
------------------------------------------------------------------------------------
DMC060001-060003,DMC060006-060007,DMC060010,DMC060014,DMC060016-060018
 
*/ 


 上述只是一个简单例子,可以由这种方式而扩展其他类型的。


关于word 07中页码不连续的问题

关于word 07中页码不连续的问题 假如首页是封面,那么先在首页 插入连续分隔符,具体操作: (1) 鼠标先定位到封面后的那一页的最顶上最左边(见图1),然后选择 页面布局 —>分隔符(...
  • KeZeng2015
  • KeZeng2015
  • 2016年11月10日 16:10
  • 908

另类数据Alternative Data行业调查

Alternative Data行业调查 1. 另类数据的定义: “Alternative data in finance refers to any data that is not tradi...
  • Richard_More
  • Richard_More
  • 2016年11月15日 00:08
  • 817

Android 获取来电号码和去电号码

转载请注明出处: http://blog.csdn.net/like_program/article/details/52662942 这篇博客将讲解 Android 如何获取来电号码和去电号码。...
  • like_program
  • like_program
  • 2016年09月25日 16:51
  • 3611

获取Android手机短信中心号码

首先到度娘那边找了好久,发现很多讲解,好开心。总之罗列了大约四种方法~~~借鉴了各位前辈讲解,我总结了一下: 第一位前辈:http://blog.csdn.net/chujiujiao/article...
  • sinat_32688815
  • sinat_32688815
  • 2016年03月01日 16:41
  • 1854

PTA_6-4 另类堆栈(15 分)_单指针栈

6-4 另类堆栈(15 分) 在栈的顺序存储实现中,另有一种方法是将Top定义为栈顶的上一个位置。请编写程序实现这种定义下堆栈的入栈、出栈操作。如何判断堆栈为空或者满? 函数接口定义:bool P...
  • jianbagengmu
  • jianbagengmu
  • 2017年11月27日 14:02
  • 148

KMP的next数组求法详解

近几天学习kmp算法,在next数组求解上受苦颇深,看了不少博客,感觉写得都不够清晰,所以想按照自己理解的过程来尝试写一下,也便于以后温习。...
  • to_be_better
  • to_be_better
  • 2015年10月13日 00:51
  • 3643

Android 手机获取手机号实现方法

Android 手机获取手机号实现方法本文主要介绍Android 获取手机号的实现方法,这里提供了实现方法,和具体操作流程,并符实现代码,有需要的小伙伴可以参考下最近做到一个项目,需要获取手机号。项目...
  • jielysong117
  • jielysong117
  • 2017年02月14日 10:33
  • 788

MYSQL实现连续签到功能,断签一天从头开始

1,创建测试表 CREATE TABLE `testsign` ( `userid` int(5) DEFAULT NULL, `username` varchar(20) DEFAULT ...
  • wxs55555
  • wxs55555
  • 2017年05月24日 11:43
  • 820

我是IT另类吗?

下个学期开学就大二了,各种课程接踵而至,数据结构,数字电路,计网基础,Java设计 小生感到甚是迷茫,问了C++老师,他说搞 ACM是条好出路 ACM难暂且不提,当身边的朋友一个个去搞实际的项目并...
  • huhuhuhuywh
  • huhuhuhuywh
  • 2015年08月14日 10:00
  • 160

全国短消息服务中心号码

中国移动短信服务中心设置方法 对于中国移动的短信服务中心号是+861380xxxx500,其中xxxx是你所在的长途电话区号,不足4位就补0,比如珠海是0756,就应该是+8613800...
  • azhangyi188
  • azhangyi188
  • 2014年04月22日 16:54
  • 1309
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:另类获得连续号码的求法
举报原因:
原因补充:

(最多只允许输入30个字)