SQL Server 函数

SQL Server (Transact-SQL) ISNUMERIC() 函数用于测试表达式是否为有效的数值类型。如果表达式是有效的数值类型,则该函数返回 1,否则返回 0。

语法

ISNUMERIC(expression) 

参数

expression必填。 指定要测试有效数字类型的值。

返回值

如果是有效的数字类型表达式返回1 。否则返回 0。

示例 1:

下面的示例显示了 ISNUMERIC() 函数的用法。

SELECT ISNUMERIC('Paris');
Result: 0

SELECT ISNUMERIC(NULL);
Result: 0

SELECT ISNUMERIC(0);
Result: 1

SELECT ISNUMERIC(10);
Result: 1

SELECT ISNUMERIC(10.25);
Result: 1

SELECT ISNUMERIC('10.25');
Result: 1 

示例 2:

考虑一个名为 Product 的数据库表,其中包含以下记录:

ProductNamePriceStockQuantityOrderQuantity
Apple1.0010020
Banana1.2512030
Orange2.15105NULL
Watermelon3.507515

如果OrderQuantity i> 是可选的并且可以包含 NULL 值。下面提到的语句将给出 NULL 值。

SELECT *, Price * (StockQuantity + OrderQuantity) AS Inventory  
FROM Product; 

这将产生如下所示的结果:

ProductNamePriceStockQuantityOrderQuantityInventory
Apple1.0010020120.0
Banana1.2512030187.5
Orange2.15105NULLNULL
Watermelon3.507515315.0

为了避免这种情况,ISNUMERIC()函数可以与 IIF() 函数结合使用,为包含 NULL 值的列提供替代值。

SELECT *, 
Price * (StockQuantity + IIF(ISNUMERIC(OrderQuantity)=0, 0, OrderQuantity)) AS Inventory
FROM Product; 

这将产生如下所示的结果:

ProductNamePriceStockQuantityOrderQuantityInventory
Apple1.0010020120.0
Banana1.2512030187.5
Orange2.15105NULL225.75
Watermelon3.507515315.0