zoukankan      html  css  js  c++  java
  • sqlserver 判断字符串是否是数字

    https://www.cnblogs.com/zjfblog/p/5625202.html

    sql2005有个函数ISNUMERIC(expression)函数:当expression为数字时,返回1,否则返回0。这只是一个菜鸟级的解决办法,大多数情况比较奏效。

    eg:

    select ISNUMERIC('123') --结果为1

    但是,该函数有个缺点!

    eg:

    复制代码
     SELECT 
     ,ISNUMERIC('-') as '-'    --1
     ,ISNUMERIC('+') as '+'    --1
     ,ISNUMERIC('$') as '$'    --1
     ,ISNUMERIC('.') as '.'    --1
     ,ISNUMERIC(',') as ','    --1
     ,ISNUMERIC('') as ''    --1
     ,ISNUMERIC('2D3') AS '2D3'--1
    ,ISNUMERIC('1d1') AS '1d1'--1
    ,ISNUMERIC('1e1') AS '1e1'--1
    ,ISNUMERIC('d') AS 'd'   --0
    复制代码

    当含有美元符、加减号、逗号等符号时,或者D、E的前后均出现数字时,也会返回1,这就比较头疼了。标点符号倒是好理解,为什么d,e这种情况,真是不理解微软设计的意图。

    有什么好的解决办法吗?当然了,请看下面

    方法:通配符。高逼格使用。

    适用场景:2005及以上(2005之前的版本没试过,应该也支持)

     --返回0-则为纯数字(支持正负数,小数点)
     SELECT PATINDEX('%[^0-9|.|-|+]%','2.2')--返回0
    
     --返回0-则为纯整数
    select PATINDEX('%[^0-9]%', '2.2')--返回非0
  • 相关阅读:
    webstrom的热更新没效果
    按钮文字有间距并居中
    兄弟选择器(+ 和 ~)
    ES6精简要点
    自动类型转换之运算符重载
    自动类型转换之构造函数
    运算符重载(三)
    运算符重载(二)
    运算符重载(一)
    友元
  • 原文地址:https://www.cnblogs.com/LuoEast/p/10489703.html
Copyright © 2011-2022 走看看