语言吧技术网欢迎您投稿,程序员的世界我懂你!=====>点此登录投搞
当前位置: 首页 >>数据库 >>MSSQL >>sql 判断是否为数字字符

sql 判断是否为数字字符

2019/1/10 15:54:44 0人评论 192次 作者:admin

sql 判断是否为数字字符,sql2005有个函数ISNUMERIC(expression)函数:当expression为数字时,返回1,否则返回0。这只是一个菜鸟级的解决办法,大多数情况比较奏效。当含有美元符、加减号、逗号等符号时,或者D、E的前后均出现数字时,也会返回1,这就比较头疼了。标点符号…

sqlserver判断字符串是否是数字

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


方法三:

SELECT * FROM TableName WHERE A  LIKE '%[^0-9]%'--非数字

??? <div class="cnblogs_Highlighter"><pre class="brush:csharp;gutter:false;">select * from tbl_order where  (substring(product_no,1,1)) not  LIKE '%[^0-9]%'

</pre>

</div>

SELECT * FROM TableName WHERE A  NOT LIKE '%[^0-9]%'--数字 

select * from biao where ISNUMERIC(ziduan)=1


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


?


相关文章

CopyRight:2007-2018 语言吧 备案ICP:湘ICP备09009000号-4 http://www.yuyanba.com
分享按钮