商品国标码的SQLSERVER SQL 校验位 实现:

商品国标码的SQLSERVER SQL 校验位 实现:

前提 A2已经由 厂商代码+4位的号码存储好,就缺最后面的校验位计算了:

A2 + RIGHT(10 - ( ( CAST(SUBSTRING(A2, 2, 1) AS INT)
                            + CAST(SUBSTRING(A2, 4, 1) AS INT)
                            + CAST(SUBSTRING(A2, 6, 1) AS INT)
                            + CAST(SUBSTRING(A2, 8, 1) AS INT)
                            + CAST(SUBSTRING(A2, 10, 1) AS INT)
                            + CAST(SUBSTRING(A2, 12, 1) AS INT) ) * 3
                          + CAST(SUBSTRING(A2, 1, 1) AS INT)
                          + CAST(SUBSTRING(A2, 3, 1) AS INT)
                          + CAST(SUBSTRING(A2, 5, 1) AS INT)
                          + CAST(SUBSTRING(A2, 7, 1) AS INT)
                          + CAST(SUBSTRING(A2, 9, 1) AS INT)
                          + CAST(SUBSTRING(A2, 11, 1) AS INT) ) % 10, 1)

算法:

条形码校验码的计算方法 
1、代码位置序号 
代码位置序号是指包括校验码在内的,由右至左的顺序号(校验码的代码位置序号为1)。 
2、计算步骤 
校验码的计算步骤如下: 
a、从代码位置序号2开始,所有偶数位的数字代码求和。 
b、将步骤a的和乘以3。 
c、从代码位置序号3开始,所有奇数位的数字代码求和。 
d、将步骤b与步骤c的结果相加。 
e、用大于或等于步骤d所得结果且为10最小整数倍的数减去步骤d所得结果,其差即为所求校验码的值。 
步骤举例说明 
1.自右向左顺序编号 位置序号 13 12 11 10 9 8 7 6 5 4 3 2 1 
代码 6 9 0 1 2 3 4 5 6 7 8 9 X 
2.从序号2开始求出偶数 9+7+5+3+1+9=34 ① 
位数字之和① 
3. ①*3=② 34×3=102 ② 
4.从序号3开始求出奇数 
位数字之和③ 8+6+4+2+0+6=26 ③ 
5. ②+③=④ 102+26=128 ④ 
6.用大于或等于结果④且 
为10最小整数倍的数减去 130-128=2 
④,其差即为所求校验码的值 校验码X=2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值