SQL ISNULL17 Mar 2025 | 6 分钟阅读 本教程将教我们如何在 SQL 和 SQL Server 中实现 IS NULL 条件和 IsNull 函数。 SQL 中的 IS NULL 条件用户可以使用 IS NULL 条件来验证数据值是否为 NULL。如果值为 NULL,则条件返回 TRUE,否则返回 FALSE。用户可以在 SQL 的 SELECT、INSERT、DELETE 或 UPDATE 子句中使用 IS NULL 条件。 IS NULL 条件的语法实现 IS NULL 条件的语法如下: Expr IS NULL IS NULL 条件中的参数或自变量Expr:指定要检查 NULL 值的值或语句。 IS NULL 条件的实现示例 1:我们将使用 SELECT 子句实现 IS NULL 条件。 如果用户想验证一个值是否为 NULL,则建议在 SQL 中使用 IS NULL 条件作为比较运算符。考虑一个使用 SELECT 语句实现 IS NULL 条件的示例。 在这种情况下,我们将使用一个 Student 表。该表包含以下记录:
执行以下 SQL 查询以创建上述表: 现在,我们将使用 SELECT 子句检索 S_City 值为 NULL 的记录。 它将仅返回 Students 表的 S_City 字段中具有 NULL 值的记录。 ![]() 示例 2:我们将使用 SQL 中的 UPDATE 子句实现 IS NULL 条件。 让我们通过一个示例来了解在对表执行 UPDATE 操作时如何实现 IS NULL 条件。我们将使用相同的 Students 表来实现 SQL 查询。表如下:
现在,在上述表中执行以下 UPDATE 语句: 如果您想查看更新后的表,执行以下查询将更新 Students 表中的 1 条记录。 您应该看到以下结果: ![]() 如果列中的数据值被赋予了多个 NULL,则所有这些值都将被修改为 Ghaziabad。由于只有一个记录符合上述条件,因此只更新了该记录。 示例 3:我们将使用 SQL 的 DELETE 子句实现 IS NULL 条件。在执行查询之前,让我们创建一个表来在 DELETE 语句中实现 IS NULL 条件。 表名为 Orders。它如下:
要将上述表创建到数据库中,请执行以下 SQL 查询: ![]() 执行以下 DELETE 语句: 上述 SQL 查询将删除 Order 价格为 NULL 的所有记录。上表仅显示了 OID 为 3 的这样一个实体。 执行以下 SQL 查询以显示执行删除后的更新表: 您应该看到以下结果: ![]() SQL 中的 ISNULL() 函数ISNULL 函数由用户实现,当他们希望用特定值替换所有被赋为 NULL 的值时。 ISNULL() 的语法在 SQL 查询中实现 ISNULL() 函数的语法如下: ISNULL (Expr, Modified_value) ISNULL() 函数中的参数用户需要在 ISNULL() 函数中传递两个参数。参数如下:
如果表达式包含 NULL 或被视为 NULL,则 ISNULL 函数将返回替换值。但在赋值之前,函数会将 modified_value 转换为与评估表达式后的值相同的数据类型。仅当 modified_value 和 expression 的数据类型不同时才执行转换。 如果表达式评估为非 NULL 值,则 ISNULL() 函数将返回表达式的值,因为它的值保持不变。 SQL 中 ISNULL() 函数的实现让我们通过不同场景来演示用户如何实现 SQL 的 ISNULL() 函数。 示例 1:在数字数据上实现 SQL ISNULL 函数。 我们将使用上面定义的 Orders 表来实现 ISNULL() 函数。
如果第一个参数为 NULL,则以下查询将返回第二个参数。 ![]() 它将更新 Price 为 NULL 的记录,该记录将被替换为 2200.00。 用户也可以通过直接使用 NULL 作为第一个参数来实现 ISNULL() 函数。 ![]() 由于第一个参数为 NULL,它将简单地返回第二个参数。 在字符串中使用 ISNULL() 函数用户还可以实现 ISNULL() 函数来用第二个参数中的字符串替换 NULL。 示例 2:在下面的示例中,我们将使用 ISNULL() 将 NULL 值替换为另一个字符串。 ![]() 让我们尝试另一个使用不同字符串作为第一个参数的示例。 ![]() 在这种情况下,它将仅返回第一个参数,因为它不是 NULL 值。 用有意义的值填充 NULL 值在许多情况下,数据分析师拥有大量数据记录,并且需要更清洁的数据,其中可能包含多个 NULL 值。这些 NULL 值通过使用 ISNULL 函数被替换为有意义的值。 让我们开始创建一个名为 division 的表。它保留了每次比赛中每位运动员年龄的记录。表如下:
执行以下 SQL 查询以创建上述表并插入给定记录。 执行 SELECT 查询以确保表中有所有记录。 ![]() Max_Age Min_Age 列中的 NULL 值表示该特定运动项目不需要最大或最小年龄即可注册。我们将用适当的值替换 NULL 值。 执行 ISNULL() 函数将 Min_Age 列中的 NULL 更改为 0,将 Max_Age 列中的 NULL 更改为 99。 ![]() 下一主题SQL Schema |
我们请求您订阅我们的新闻通讯以获取最新更新。