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

 

 

相关文章

精彩推荐