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

eg:

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

但是,该函数有个缺点!

eg:

1
2
3
4
5
6
7
8
9
10
11
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之前的版本没试过,应该也支持)

1
2
3
4
5
--返回0-则为纯数字(支持正负数,小数点)
 SELECT PATINDEX('%[^0-9|.|-|+]%','2.2')--返回0
 
 --返回0-则为纯整数
select PATINDEX('%[^0-9]%''2.2')--返回非0

  

[转]sqlserver判断字符串是否是数字的更多相关文章

  1. sqlserver判断字符串是否是数字

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

  2. sqlserver 判断字符串是否是数字

    https://www.cnblogs.com/zjfblog/p/5625202.html sql2005有个函数ISNUMERIC(expression)函数:当expression为数字时,返回 ...

  3. C#判断字符串是否是数字

    /// <summary> /// 判断字符串是否是数字 /// </summary> public static bool IsNumber(string s) { if ( ...

  4. 字符串--java中判断字符串是否为数字的方法的几种方法?

    ava中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < ...

  5. shell 判断字符串是否为数字

    本篇文章主要介绍了"shell 判断字符串是否为数字",主要涉及到shell 判断字符串是否为数字方面的内容,对于shell 判断字符串是否为数字感兴趣的同学可以参考一下. #!/ ...

  6. Linux C判断字符串是否为数字

    Title:Linux C判断字符串是否为数字  --2013-10-14 15:54 #include <ctype.h> #include <string.h> int I ...

  7. java中判断字符串是否为数字的方法的几种方法

    1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ ...

  8. js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字

    js正则表达式,判断字符串是否以数字组结尾,并取出结尾的数字 <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  9. Java:判断字符串是否为数字的五种方法

    Java:判断字符串是否为数字的五种方法 //方法一:用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = str. ...

随机推荐

  1. EasyNVR摄像机网页无插件直播方案H5前端构建之:如何区分PC端和移动端

    背景分析 随着互联网基础设施建设的不断完善和发展,带宽的不断提速,尤其是光纤入户,4G/5G/NB-IoT各种网络技术的大规模商用,视频随时随地可看.可控的诉求越来越多,尤其是移动应用技术和前端技术的 ...

  2. 部署TiDB集群

    架构图 节点规划 120.52.146.213 Control Machine 120.52.146.214 PD1_TiDB1 120.52.146.215 PD2_TiDB2 120.52.146 ...

  3. cordova调用第三方应用

    cordova 帮助webapp 达到调用原生系统的功能 项目需求:在项目中调用系统中含有的第三方地图应用 需求其实分为两步: 1. 查找本地地图应用 2.成功调起本地应用 首先需要安装两个插件,安装 ...

  4. Git 删除所有历史提交记录方法

    Git 删除所有历史提交记录方法 切换分支 git checkout --orphan latest_branch 添加所有文件 git add -A 提交更改 git commit -am &quo ...

  5. [转帖]两大容器管理平台,Kubernetes与OpenShift有什么区别?

    两大容器管理平台,Kubernetes与OpenShift有什么区别? https://www.sohu.com/a/327413642_100159565 原来openshift 就是 k8s的一个 ...

  6. Linux基础(06)IO复用

    在Windows文件指的就是普通的肉眼可见的文件 , 而Linux一切皆文件 https://blog.csdn.net/nan_nan_nan_nan_nan/article/details/812 ...

  7. 【Rust】使用cargo创建项目及cargo源的替换

    ---------------------------------参考文档------------------------------- https://rustlang-cn.org/office/ ...

  8. python_三目运算

    首先确定三目运算的使用条件, if只有两个才能用三目  只有 if:else:    先写个if else的小例子: if push == "lpush": self.conn.l ...

  9. MNIST机器学习入门(一)

    一.简介 首先介绍MNIST 数据集.如图1-1 所示, MNIST 数据集主要由一些手写数字的图片和相应的标签组成,图片一共有10 类,分别对应从0-9 ,共10 个阿拉伯数字. 原始的MNIST ...

  10. 三伏天里小试牛刀andriod 开发 #华为云·寻找黑马程序员#【华为云技术分享】

    2019年07月,北京,三伏天,好热啊.越热自己还越懒得动换(肉身给的信号),但是做为产品经理/交互设计师的,总想着思考些什么(灵魂上给的信号),或者是学习些什么,更有利于将来的职业发展吧,哈哈哈.工 ...