zoukankan      html  css  js  c++  java
  • (转)基于SQL的EAN13、ENA8条形码校验位生成

    USE [DB]
    GO
    /****** Object: UserDefinedFunction [dbo].[EAN13] Script Date: 07/04/2017 15:21:51 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    /**
    --功能:获取EAN-13码的检验位
    --Author:josy(百年树人)
    --参数@s:EAN-13码前12位
    **/
    ALTER function [dbo].[EAN13](@s char(12))
    returns varchar(1)
    as
    begin
    return (10-(
    (cast(substring(@s,2,1) as int)+substring(@s,4,1)+substring(@s,6,1)
    +substring(@s,8,1)+substring(@s,10,1)+substring(@s,12,1)
    )*3
    +substring(@s,1,1)+substring(@s,3,1)+substring(@s,5,1)
    +substring(@s,7,1)+substring(@s,9,1)+substring(@s,11,1)
    )%10)%10
    end

    create function dbo.EAN8 (@value varchar(8))
    returns varchar(8)
    as
    begin
    declare @s1 int ,@s2 int,@s3 int
    declare @t table (id int identity(1,1),b bit)
    insert into @t(b)
    select top 8 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 @s3=right(@s1+@s2,1)
    return left(reverse(@value),7)+ltrim(10-case @s3 when '0' then '10' else @s3 end)
    end
    go

  • 相关阅读:
    pycharm破解补丁的使用
    C# 解析JSON格式数据
    LINQ to DataSet的DataTable操作
    日期格式化
    vue scoped原理
    vue父子组件生命周期执行顺序
    js判断同一天和同一周
    flex总结
    react-router v4 参数传递
    link标签rel="alternate"属性的作用及用法
  • 原文地址:https://www.cnblogs.com/spymaster/p/7113582.html
Copyright © 2011-2022 走看看