declare @s varchar(50)
set @s='123$'
if patindex('%[^0-9]%',@s) > 0
print '有非数字的字符'
else
print '可以'

解决方案 »

  1.   

    如果仅仅是数字, 可以用类似这样的条件PATINDEX('%[^-9]%', 要判断的值) = 0
      

  2.   

    就是用isnumeric

    验证数字的就是用这个啊
      

  3.   


    PATINDEX('%[^-9.-]%', 要判断的值) = 0
      

  4.   

    这样是有问题的1.1.1.12.2.2变成也是数字了想听听LZ为什么isnumeric不管用。说下你的数据
      

  5.   

    12.和+号返回的都是1,如果你再转换下cast('+' as decimal(2,2))就会报错啦~~~