2

VARCHARフィールドの値が正常に整数に変換できるかどうかを知るにはどうすればよいですか?

あるテーブルから別のテーブルにレコードを挿入するために大規模に実行したい...

4

2 に答える 2

8

IsNumeric()関数は、数値に変換できる文字列(varchars)の場合は1を返し、変換できない文字列(varchars)の場合は0を返します。

IsNumeric関数をチェックしてください

于 2009-10-27T22:45:51.803 に答える
0

IsNumeric()関数の問題の1つは、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 
于 2009-12-14T15:38:18.840 に答える