代码之家  ›  专栏  ›  技术社区  ›  tekBlues

使用SQL Server 2000检查数值

  •  2
  • tekBlues  · 技术社区  · 14 年前

    如何知道varchar字段的值是否可以成功转换为整数?

    我想大量地将记录从一个表插入到另一个表中…

    2 回复  |  直到 14 年前
        1
  •  8
  •   Charles Bretana    14 年前

    函数的作用是:为可以转换为数字的字符串(varchars)返回1,为不能转换的字符串返回0。

    退房 IsNumeric function

        2
  •  0
  •   adopilot    14 年前

    isnumeric()函数的一个问题是,如果数字有小数点分隔符,那么您将得到true, 什么是完全正确的,但是如果像我这样的人需要直接检查varchar中的数字,而没有十进制符号,(当我需要计算条形码上的校验位时,我得到了这个结果),你可以使用castom 使功能类似

    create FUNCTION [dbo].[checkbarkod] 
    (
        @ean_kod varchar(13)
    )
    RETURNS bit
    AS
    begin
        declare @duzina int
        declare @slovo char(1)
        declare @pozicija int
        declare @uredu bit
        set @duzina=len(@ean_kod) 
        while @duzina>0
            begin
                set @slovo=(substring(@ean_kod,@duzina,1))
                if  (@slovo not in('1','2','3','4','5','6','7','8','9','0'))
                    begin
                        set @uredu=convert(bit,0)
                        break
                    end
                else 
                    begin
                        set @uredu=convert(bit,1)
                        set @duzina=@duzina-1
                end
            end
        RETURN @uredu
    end