sql ISNUMERIC 判断是否是数值类型
语法
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
补充:数据库,Mssql