如题,返回的1,转换成数字类型又报错,不知道大家是怎么弄的

解决方案 »

  1.   

    select isnumeric('0') + 1
      

  2.   

    没明白楼上回答的意思,select isnumeric(',')和select isnumeric('1,'),用isnumeric判断,和数字的组合都返回的是1,把他转换成数字又报错
      

  3.   

    ISNUMERIC ( expression ) 
    备注
    如果输入表达式的计算值为有效的整数、浮点数、money 或 decimal 类型时,ISNUMERIC 返回 1;否则返回 0。返回值为 1 时,指示可将 expression 至少转换为上述数值类型中的一种。select cast( isnumeric(0) as int);
    不知道你是怎么转化为数字类型的??
      

  4.   

    --select isnumeric(',')怎么返回的1呀 因為select cast(',' as money)--result
    --------------------- 
    .0000(1 row(s) affected)
      

  5.   

    ISNUMERIC ( expression ) 
    备注
    如果输入表达式的计算值为有效的整数、浮点数、money 或 decimal 类型时,ISNUMERIC 返回 1;否则返回 0。返回值为 1 时,指示可将 expression 至少转换为上述数值类型中的一种。楼主所遇到的问题是因为:","可以转换成money类型。
      

  6.   

    declare @ss varchar
    set @ss='3。w1'; //可以换成@ss=',2,w2'
    select cast( isnumeric(@ss) as int);这样执行都返回1弄不明白了 高手解释下了
      

  7.   

    哦,那我要转成其他数字类型要先转成money再转成其它的,有点麻烦,不过也理解了
    select convert(int,convert(money,','))
      

  8.   

    declare @ss varchar
    set @ss='122,w3。w1';
    select cast( @ss as money);
    ====
    1。00为什么