您的位置:58脚本 > sqlisnull函数的用法 SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

sqlisnull函数的用法 SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

2023-03-12 06:32 MySQL教程

sqlisnull函数的用法 SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

sqlisnull函数的用法

SQLISNULL函数是SQL Server中的一个内置函数,它用于检查表达式是否为NULL。如果表达式的值为NULL,则返回1,否则返回0。它可以用于处理空值,以便在结果集中显示有意义的值。

SQLISNULL函数的语法如下所示:

ISNULL ( check_expression , replacement_value )

其中check_expression参数是要检查的表达式,replacement_value参数是要返回的值。如果check_expression参数不为NULL,则返回check_expression参数的值;如果check_expression参数为NULL,则返回replacement_value参数的值。

例如,我们有一个名为Employees的表格,其中包含员工信息。我们想要使用SQLISNULL函数来显示员工姓名或“未知”字样。我们可以使用以下SELECT语句来实现此目的:

SELECT ISNULL(EmployeeName, 'Unknown') AS EmployeeName FROM Employees;

上面的SELECT语句将返回EmployeeName字段中不为null的值,如果EmployeeName字段中有null值则将其替换为“Unknown”字样。

此外,SQLISNULL函数也可以用于在WHERE子句中处理null值。例如,我们想要选择EmployeeName字段不为null的记录时,我们可以使用以下SELECT语句来实现此目的:

SELECT * FROM Employees WHERE ISNULL(EmployeeName, 0) = 0; 

上面的SELECT语句将返回EmployeeName字段不为null 的记录。

SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

SQL NULL 函数


SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数

请看下面的 "Products" 表:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23
3 Gorgonzola 15.67 9 20

假如 "UnitsOnOrder" 是可选的,而且可以包含 NULL 值。

我们使用下面的 SELECT 语句:

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products

在上面的实例中,如果有 "UnitsOnOrder" 值是 NULL,那么结果是 NULL。

微软的 ISNULL() 函数用于规定如何处理 NULL 值。

NVL()、IFNULL() 和 COALESCE() 函数也可以达到相同的结果。

在这里,我们希望 NULL 值为 0。

下面,如果 "UnitsOnOrder" 是 NULL,则不会影响计算,因为如果值是 NULL 则 ISNULL() 返回 0:

SQL Server / MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products

Oracle

Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products

MySQL

MySQL 也拥有类似 ISNULL() 的函数。不过它的工作方式与微软的 ISNULL() 函数有点不同。

在 MySQL 中,我们可以使用 IFNULL() 函数,如下所示:

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products

或者我们可以使用 COALESCE() 函数,如下所示:

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products

阅读全文
以上是58脚本为你收集整理的sqlisnull函数的用法 SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS