sql ISNUMERIC 判断是否是数值类型

作者:袖梨 2022-06-29

语法

ISNUMERIC ( expression )
参数
expression
要计算的表达式。

返回类型
int

备注
当输入表达式的计算结果为有效的 numeric 数据类型时,ISNUMERIC 返回 1;否则返回 0。有效的 numeric 数据类型包括以下类型:

int
numeric

bigint
money

smallint
smallmoney

tinyint
float

decimal
real

返回值 1 指示可以将表达式转换为至少一种 numeric 类型。

注意:
对于不是数字的字符(如加号 (+)、减号 (-))和有效货币符号(如美元符号 ($))字符,ISNUMERIC 将返回 1。有关货币符号的完整列表,请参阅使用货币数据。


示例
以下示例使用 ISNUMERIC 返回所有非数值的邮政编码。

复制代码
USE AdventureWorks;
GO
SELECT City, PostalCode
FROM Person.Address
WHERE ISNUMERIC(PostalCode) 1;
GO


SELECT * FROM 表 WHERE ISNUMERIC(inventPrice) = 1

测试

select isnumeric( '0000d34 ') --返回1
select cast( '0000d34 ' as float(28,8)) ----返回0.0


select isnumeric( '0000c34 ') --返回0

D可能是一个比较特殊的字符,

上述功能可用下面的方法实现,当然感觉很不好。

select substring(id,11,16) from test where isnumeric(substring(replace(id, 'd ', 'c '),11,16))=1

相关文章

精彩推荐