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