使用 SQL Server 2000 检查数值

发布于 2024-08-09 01:33:11 字数 70 浏览 6 评论 0原文

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

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

How can I know if a VARCHAR field's value can be successfully converted to an integer?

I want to do it massively to insert records from one table to another...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

み青杉依旧 2024-08-16 01:33:11

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 

One issue whit IsNumeric() function is that You will get True and if number got decimal separator,
What is totally right, But if someone as I need to check straight to numbers in varchar, without decimal symbols, (I got that when I needed to calculate CHECK digit on barcode) You can use castom
made function like

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 
新雨望断虹 2024-08-16 01:33:11

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

查看 IsNumeric 函数

IsNumeric() function returns 1 for strings (varchars) which can be converted to a number and 0 for those that cannot..

Check out IsNumeric function

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文