首页 新闻 搜索 专区 学院

SQL怎样自动生成编号格式如:XX0001, XX0002 ,XX9999

0
悬赏园豆:200 [待解决问题]

SQL怎样自动生成编号格式如:XX0001, XX0002 ,XX9999
各位大神求代码

茹愿的小可爱的主页 茹愿的小可爱 | 初学一级 | 园豆:2
提问于:2018-12-04 09:38

建议在程序里面做掉,数据库最好不要做太多的逻辑处理。

?,???? 1年前
< >
分享
所有回答(3)
0

CREATE PROC CreateMaxNum
(
@NumberHeader NVARCHAR(40) --号码单头类型
)
DECLARE @NumberHeader NVARCHAR(40), --编号头
@NumberMiddle CHAR(8), --编号中间规则
@MaxNum CHAR(8), --编号最大流水号
@SQL NVARCHAR(4000)
SET @NumberMiddle= CONVERT(CHAR(8),GETDATE(),112) --设置中间编码规则
SET @SQL = 'SELECT @Num=RIGHT(''0000''+LTRIM(MAX(RIGHT(号码,4))+1),4)
FROM 号码表
WHERE 号码 LIKE '''+ @NumberHeader+'%'' ';
EXEC sp_executesql @Sql,N'@Num NVARCHAR(40) OUTPUT',@MaxNum OUT
IF @MaxNum IS NULL --不存在该类型的号码,插入流水号为1的号码,
BEGIN
SELECT @NumberHeader + @NumberMiddle + '0001'
END
ELSE
BEGIN --生成最大流水号
SELECT @NumberHeader + @NumberMiddle + @MaxNum
END

这段代码可以生成bv +年月日+编号,你把中间的年月日去掉就可以了,试一试

OIMM | 园豆:206 (菜鸟二级) | 2018-12-04 09:50

兄弟你这个不对啊

支持(0) 反对(0) 茹愿的小可爱 | 园豆:2 (初学一级) | 2018-12-04 09:58

@茹愿的小可爱: 哪里不对?

支持(0) 反对(0) OIMM | 园豆:206 (菜鸟二级) | 2018-12-04 09:59

能否直接给个我要的这种格式的代码

支持(0) 反对(0) 茹愿的小可爱 | 园豆:2 (初学一级) | 2018-12-04 10:06

@茹愿的小可爱: CREATE PROC CreateMaxNum
(
@NumberHeader NVARCHAR(40) --号码单头类型
)
DECLARE @NumberHeader NVARCHAR(40), --编号头
@MaxNum CHAR(8), --编号最大流水号
@SQL NVARCHAR(4000)
SET @SQL = 'SELECT @Num=RIGHT(''0000''+LTRIM(MAX(RIGHT(号码,4))+1),4)
FROM 号码表
WHERE 号码 LIKE '''+ @NumberHeader+'%'' ';
EXEC sp_executesql @Sql,N'@Num NVARCHAR(40) OUTPUT',@MaxNum OUT
IF @MaxNum IS NULL --不存在该类型的号码,插入流水号为1的号码,
BEGIN
SELECT @NumberHeader + '0001'
END
ELSE
BEGIN --生成最大流水号
SELECT @NumberHeader + @MaxNum
END

支持(0) 反对(0) OIMM | 园豆:206 (菜鸟二级) | 2018-12-04 10:11

@茹愿的小可爱: 你是不是什么都不会?

支持(0) 反对(0) OIMM | 园豆:206 (菜鸟二级) | 2018-12-04 10:11

@OIMM: 对的兄弟

支持(0) 反对(0) 茹愿的小可爱 | 园豆:2 (初学一级) | 2018-12-04 10:12

@OIMM: 不要带日期的

支持(0) 反对(0) 茹愿的小可爱 | 园豆:2 (初学一级) | 2018-12-04 10:12

@茹愿的小可爱: 后面这个就是没日期的呀

支持(0) 反对(0) OIMM | 园豆:206 (菜鸟二级) | 2018-12-04 10:13

@OIMM: 谢谢大哥

支持(0) 反对(0) 茹愿的小可爱 | 园豆:2 (初学一级) | 2018-12-04 10:23

@茹愿的小可爱: 加油,兄弟!忙活半天了,别忘了给豆子哦

支持(0) 反对(0) OIMM | 园豆:206 (菜鸟二级) | 2018-12-04 10:25
0
ycyzharry | 园豆:20831 (高人七级) | 2018-12-04 09:58
0

循环序列,这种方法最简单了

魔多 | 园豆:1031 (小虾三级) | 2018-12-04 13:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册