介绍
在SQL Server数据库中,NULL值被用来表示缺少信息或未知值。通常,在使用SELECT语句时,需要对该列是否包含NULL值进行检查。为此,SQL Server提供了两种方法来检查NULL值:IS NULL和NULL函数。
IS NULL
IS NULL用于检查列中是否存在NULL值。如果存在NULL值,它将返回TRUE,否则返回FALSE。
SELECT column_name
FROM table_name
WHERE column_name IS NULL;
注意:在SQL Server中,要使用IS NULL而不是= NULL来检查NULL值。
NULL函数
NULL函数用于确定表达式是否为NULL。如果表达式是NULL,它将返回TRUE,否则返回FALSE。
SELECT column_name, NULLIF(column_name,'') AS 'new_column_name'
FROM table_name;
注意:NULLIF函数在两个参数相等时返回NULL,否则返回第一个参数的值。在上面的查询中,如果column_name为空字符串,则将其替换为空值(NULL)。
使用NULL函数和CASE语句
在某些情况下,希望将NULL值替换为其他值。可以使用NULL函数和CASE语句来实现这一点。
SELECT column1, column2,
CASE
WHEN column3 IS NULL THEN 'Unknown'
ELSE column3
END AS 'new_column3'
FROM table_name;
注意:CASE语句用于根据条件返回不同的结果。在上面的查询中,如果column3为空,则将其替换为“Unknown”。
使用COALESCE函数
有时候需要从多个列中选择一个非空值。COALESCE函数可用于从多个表达式中选择第一个非空值。
SELECT column1, COALESCE(column2, column3, column4) AS 'new_column'
FROM table_name;
注意:在上面的查询中,如果column2为空,则返回column3的值。如果column2和column3都为空,则返回column4的值。
使用ISNULL函数
ISNULL函数用于在查询中将NULL值替换为其他值。
SELECT column1, ISNULL(column2, 'Unknown') AS 'new_column2'
FROM table_name;
注意:在上面的查询中,如果column2为空,则将其替换为“Unknown”。
使用IFNULL函数
IFNULL函数用于在查询中将NULL值替换为其他值。它是MySQL中的函数,而不是SQL Server中的函数。在SQL Server中,可以使用ISNULL函数来实现相同的结果。
SELECT column1, IFNULL(column2, 'Unknown') AS 'new_column2'
FROM table_name;
注意:在上面的查询中,如果column2为空,则将其替换为“Unknown”。