比如字段里面是'L',那么它就不是数值,如果是'123.1'那么为数值,现在我用cast(字段 as float)来判断,但是会提示错误,有没有内建的函数判断它是数值型的???附错误:
将数据类型 varchar 转换为 float 时出错。

解决方案 »

  1.   

    isnumeric()返回0不是數字,1是數字
      

  2.   

    用isnumeric()来判断,注意过滤空字符串以及"."等特殊字符。
      

  3.   

    ISNUMERIC
    決定運算式是否為有效的數值型別。語法
    ISNUMERIC ( expression )引數
    expression是要驗算的運算式。傳回型別
    int備註
    當輸入運算式驗算為有效整數、浮點數字、money 或 decimal 型別時,ISNUMERIC 會傳回 1,否則會傳回 0。傳回值為 1 確保 expression 可被轉換成這些數值型別之一。
      

  4.   

    Select IsNumeric('L') --0
    Select IsNumeric('12356') --1
      

  5.   

    用ISNUMERIC 函数判断
    case when ISNUMERIC(字段)=1 then '数字' else '字符' end
      

  6.   

    echiynn(寶琲) ( ) 信誉:100  2007-07-16 16:27:35  得分: 0  
     
     
       我的回貼時間比樓主發貼時間還早?
      
     
    ---------
    前面四個都是
      

  7.   

    select 数值=case when isnumeric(字段)=1 then 字段 end,
    非数值=case when isnumeric(字段)=0 then 字段 end
    from 表
      

  8.   

    回复人:paoluo(一天到晚游泳的鱼) ( 四星(高级)) 信誉:100  2007-07-16 16:28:26  得分:0

    echiynn(寶琲) ( ) 信誉:100 2007-07-16 16:27:35 得分: 0
    我的回貼時間比樓主發貼時間還早?
    ---------
    前面四個都是
    ---------
    都应该去买彩票,或者散分.
      

  9.   

    select * from table1 where isnumeric(field1)=1
      

  10.   

    isnumeric(数据)=0    --不是数字类型
    isnumeric(数据)=1    --数字类型
      

  11.   

    ISNUMERIC ( expression )