Проверьте числовое значение с помощью SQL Server 2000

StackOverflow https://stackoverflow.com/questions/1634089

Вопрос

Как узнать, можно ли успешно преобразовать значение поля VARCHAR в целое число?

Я хочу сделать это массово, чтобы вставить записи из одной таблицы в другую ...

Это было полезно?

Решение

Функция IsNumeric () возвращает 1 для строк (varchars), которые можно преобразовать в число, и 0 для тех, которые не могут ..

Ознакомьтесь с функцией IsNumeric

Другие советы

Одна из проблем, связанных с функцией 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 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top