【问题标题】:Check for Numeric Value using SQL Server 2000使用 SQL Server 2000 检查数值
【发布时间】:2009-10-27 22:43:00
【问题描述】:

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

我想大规模地将记录从一个表插入到另一个表中......

【问题讨论】:

    标签: sql-server sql-server-2000 numeric


    【解决方案1】:

    IsNumeric() 函数对于可以转换为数字的字符串(varchars)返回 1,对于不能转换为数字的字符串返回 0..

    查看IsNumeric function

    【讨论】:

      【解决方案2】:

      IsNumeric() 函数的一个问题是你会得到 True 并且如果数字有小数分隔符, 什么是完全正确的,但是如果有人像我一样需要直接检查 varchar 中的数字,没有十进制符号,(当我需要计算条形码上的 CHECK 数字时我得到了)你可以使用 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 
      

      【讨论】:

        猜你喜欢
        • 2011-11-20
        • 2010-11-11
        • 2017-10-20
        • 2011-10-13
        • 2016-03-25
        • 1970-01-01
        • 2016-06-13
        • 2014-05-03
        • 2010-09-26
        相关资源
        最近更新 更多