一个复杂的编号:怎么用SQL语句来编序号
我有一个表,想按以下的规则给它们编号:
主要是按照以下字段来编:
YXDM ZYDM
其中每个编号前必须有省市代码两位:如32,然后开始按YXDM的顺序编写,取YXDM的值,就形成了:32+YXDM,再后面按ZYDM来取三个流水号,但是即使前面的YXDM不同,但ZYDM相同,也要取相同的流水号,比如其中有的记录这两个字段为:001 001;002 001 ;005 001,那么,YXDM分别为001,002,005编号也应该为相同的流水号,假设001的流水号为008那么它们的前6位就该分别为:32001008;32002008;32005008;再接下来就是5位流水号,但是,如果ZYDM不同了,那么流水号就要重新从1开始。同时,如果YXDM不同了,最后5位流水号也要同是清0从1开始。
问题点数:20、回复次数:6Top
1 楼bdwg(随便)回复于 2003-11-03 10:27:28 得分 0
@_@Top
2 楼willway(小鬼=[SCM]=)回复于 2003-11-03 10:30:55 得分 5
不太明白你的意思,你把原先的数据列出,想要达到的效果也列出来看看Top
3 楼wzh1215(懒猫)回复于 2003-11-03 10:53:28 得分 5
CREATE table #a(YXDM varchar(10),ZYDM varchar(5))
insert into #a values('001','001')
insert into #a values('002','001')
insert into #a values('005','001')
select * from #a
create table #b(xx varchar(20))
declare @aaa varchar(20)
select @aaa='32'+YXDM+'008' from #a where ZYDM='001'
declare @s int
set @s=(select count(*) from #b where left(xx,len(xx)-5)=@aaa)+1
insert into #b(xx)
values(@aaa+right('0000'+cast (@s as varchar(5)),5))
select * from #bTop
4 楼zjcxc(邹建)回复于 2003-11-03 11:20:41 得分 5
编号规则比较明白了,你是想在现有表的基础上加一个编号,还是想做其他什么?
Top
5 楼cqnucsmoon()回复于 2003-11-03 11:57:58 得分 0
zjcxc(邹建) :我是想在现有表的一个空字段BH里加入进去?Top
6 楼zjcxc(邹建)回复于 2003-11-03 12:10:17 得分 5
你的表中,YXDM ZYDM
都有数据,那直接用更新不就可以了吗?
就:wzh1215(四脚蛇)
的不是你想要的吗?Top




