博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlserver 判断字符串是否是数字
阅读量:5320 次
发布时间:2019-06-14

本文共 791 字,大约阅读时间需要 2 分钟。

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

转载于:https://www.cnblogs.com/LuoEast/p/10489703.html

你可能感兴趣的文章
HBase简介
查看>>
Javascript 作用域与this的用法
查看>>
Hdu 1053 Entropy
查看>>
清除 Windows 系统垃圾的 bat
查看>>
Form验证
查看>>
visualGraph 下载
查看>>
[bzoj2208][Jsoi2010]连通数
查看>>
HDFS的Java客户端操作代码(查看HDFS下所有的文件或目录)
查看>>
1.4激活函数-带隐层的神经网络tf实战
查看>>
ubantu搭建svn
查看>>
svn 被锁,清理恢复过程
查看>>
hexo 静态页面生成后页面打不开的问题
查看>>
jquery里互为逆过程的方法
查看>>
python 生成随机序列的小程序
查看>>
First -
查看>>
对jQuery ajax的认识
查看>>
在 Azure VM 上安装 LEMP Web 服务器
查看>>
C++入门经典-例6.1-一维数组元素
查看>>
基础动画(落叶)
查看>>
实现搜索字符与搜索内容突出显示
查看>>