标签归档:isnumeric

mssql sqlserver 判断sql字符串是否可以转换为数值类型的方法分享


摘要:
下文分享在sqlserver中判断字符串是否可以转换为数值类型的方法分享,如下所示:
实验环境:sql server 2008 R2



实现思路:
主要采用sqlserver自带的ISNUMERIC函数对输入的字符串进行检测,如果是一个有效的数值表达式,则返回1,否则返回0
—–注意事项——-
使用此函数进行数据转换,当数值中包含 加号 减号 货币符号,都可以进行合适的转换。

例:

 select ISNUMERIC('898.89'), ISNUMERIC('猫猫小屋')
   -----输出-----
   1,0

mssql sqlserver isnumeric 是否数值类型检测函数使用注意事项


摘要:
下文讲述我们常用的isnumeric检测函数的具体用法,如下所示:



一、isnumeric 语法简介

isnumeric(表达式)
当输入的表达式 可转换为numeric符合的数据类型时,
isnumeric函数返回1 否则返回0
————————————————
isnumeric可检测的类型包括:
int、numeric、bigint、money、smallint、smallmoney、
tinyint、float、decimal、real
————————————————

如果在数字字符前面加上 “+” 或 “-” 或”货币符号”,
isnumeric函数将返回1,
所以检测数据类型时,需注意货币符号



二、isnumeric 注意事项

declare @t table(info varchar(60))
insert into @t (info)
values('8'),('85,890.056'),('¥898'),('$8,888'),('+8'),('98.09')
---检测是否为数值型
select * from @t t where isnumeric(info)=1 

---如果不包含千分号和货币符号,可采用pathindex
SELECT  *   FROM    @t t 
WHERE   PATINDEX('%[^0-9|.|-|+]%', t.info) = 0  
go