首页 > 数据库技术 > 详细

(转)基于SQL的EAN-13条形码校验位生成

时间:2017-07-04 00:46:10      阅读:478      评论:0      收藏:0      [点我收藏+]

源:http://bbs.csdn.net/topics/220057226

create function dbo.EAN_13(@value varchar(13))
returns varchar(13)
as
begin
declare @s1 int ,@s2 int

declare @t table (id int identity(1,1),b bit)

insert into @t(b)
select top 13 1 from syscolumns

set @value=‘0‘+reverse(@value)

select @s1=sum(cast(substring(@value,id,1) as int))
from @t a
where len(@value)>=id and id%2=0

set @s1=@s1*3

select @s2=sum(cast(substring(@value,id,1) as int))
from @t a
where len(@value)>=id and id>=3 and id%2=1

set @s1=@s1+@s2
return left(reverse(@value),12)+ltrim(10-len(@s1))
end
go

select dbo.EAN_13(‘234235654652‘) ean13
go

drop function EAN_13

/*
ean13
-------------
2342356546528

(所影响的行数为 1 行)
*/

(转)基于SQL的EAN-13条形码校验位生成

原文:http://www.cnblogs.com/spymaster/p/7113582.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!