解决方案 »

  1.   

    '04D53'能够被转换为4,这里D代表十进制
    另外几个例子:‘11E2’ 能够被转换为1100,这里E代表指数
    ‘$1234’ 能够被转换为1234,$这里代表钱
    ISNUMERIC returns 1 when the input expression evaluates to a valid integer, floating point number, money or decimal type; otherwise it returns 0. A return value of 1 indicates that expression can be converted to at least one of the numeric types.
      

  2.   

    科学记数法,ISNUMBERIC() 中 D 和 E 是等价的。
    select convert(float ,'04D53')
                          
    ----------------------
                     4E+53
      

  3.   

    Actually,  D stands for Decimal,
                     E stands for  Exponent(equally power of 10)
      

  4.   

    Actually,  D stands for Decimal,
                     E stands for  Exponent(equally power of 10)
    在 SQL Server 中没区别:
    没转换前,字符串就是字符串。
    转换后,指定结果是什么类型就是什么类型(real/float)。
      

  5.   

    不知你的目的是什么,如果是检查字段值中都是数字过小数点,可以在调用IsNumberic前用replace将D和E换成别的字符
    SELECT ISNUMERIC (replace(REPLACE('22d45','D','C'),'E','C'))
      

  6.   

    如果用这个你对isnumeric加深了印象,那么你成功了
      

  7.   

    isnumeric函数有很多问题,比如小数点:isnumeric('.') 为1