CONVERT(int,case when isnumeric(@str)=1 then @str else '0' end)

解决方案 »

  1.   

    case when isnumeric(@str)=1 then cast(@str as int) else 0 end
      

  2.   

    select convert(int,case when isnumeric(字段名)=1 then 字段名 else '0' end) from t
      

  3.   

    用isnumeric函數就OK了。ISNUMERIC
    确定表达式是否为一个有效的数字类型。语法
    ISNUMERIC ( expression )参数
    expression要计算的表达式。返回类型
    int注释
    当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。返回值为 1 确保可以将 expression 转换为上述数字类型中的一种。示例
    A. 使用 ISNUMERIC
    下面的示例返回 1,这是因为 zip 列包含有效的数值。 USE pubs
    SELECT ISNUMERIC(zip) 
    FROM authors
    GO
      

  4.   

    用法和isnull()一样。//判断为空的时候
    ISNUMERIC //判断是否为整数、浮点数、money 或 decimal 类型