SQL ISNULL条件

SQL ISNULL条件

这个教程将会教我们如何在SQL和SQL服务器中实现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的表格。该表包含以下记录:

S_ID F_Name L_Name S_City Phone_Number
1 Aman Gupta Delhi 8649293478
2 Ritik Sharma Noida 9294234754
3 Aditi Verma NULL 8849430799
4 Harsh Gupta Jaipur 9372994792
5 Saarthak Sharma Meerut 7653294814

使用以下SQL查询创建上述表格:

CREATE TABLE Students (
    S_ID INT,
    F_Name VARCHAR(50),
    L_Name VARCHAR(50),
    S_City VARCHAR(50),
    Phone_Number VARCHAR(20)
);
INSERT INTO Students (S_ID, F_Name, L_Name, S_City, Phone_Number)
VALUES (1, 'Aman', 'Gupta', 'Delhi', '8649293478');
INSERT INTO Students (S_ID, F_Name, L_Name, S_City, Phone_Number)
VALUES (2, 'Ritik', 'Sharma', 'Noida', '9294234754');
INSERT INTO Students (S_ID, F_Name, L_Name, S_City, Phone_Number)
VALUES (3, 'Aditi', 'Verma', NULL, '8849430799');
INSERT INTO Students (S_ID, F_Name, L_Name, S_City, Phone_Number)
VALUES (4, 'Harsh', 'Gupta', 'Jaipur', '9372994792');
INSERT INTO Students (S_ID, F_Name, L_Name, S_City, Phone_Number)
VALUES (5, 'Saarthak', 'Sharma', 'Meerut', '7653294814');

现在,我们将使用SELECT子句来检索S_City值为NULL的记录。

SELECT S_ID, F_Name, S_City
FROM Students
WHERE S_City IS NULL;

它将只返回Students表中S_City字段为NULL值的记录。

SQL ISNULL条件

示例2: 我们将使用UPDATE子句在SQL中实现IS NULL条件。

让我们通过一个例子来了解如何在对表进行UPDATE操作时实现IS NULL条件。我们将使用相同的Students表来实现SQL查询。表格如下:

S_ID F_Name L_Name S_City Phone_Number
1 Aman Gupta Delhi 8649293478
2 Ritik Sharma Noida 9294234754
3 Aditi Verma NULL 8849430799
4 Harsh Gupta Jaipur 9372994792
5 Saarthak Sharma Meerut 7653294814

现在,在上面的表格中实现以下UPDATE语句。

UPDATE Students
SET S_City = 'Ghaziabad'
WHERE S_City IS NULL;

如果您想查看更新后的表格,请执行以下查询,它将更新Students表中的1条记录。

SELECT S_ID, F_Name, S_City FROM Students;

这是您应该看到的结果:

SQL ISNULL条件

如果将列中的多个值赋值为NULL作为数据值,则所有这些值将被修改为Ghaziabad。由于只有1条记录满足上述条件,因此只有该记录被更新。

例3: 我们将在SQL中使用DELETE子句实现IS NULL条件。在实施查询之前,让我们创建一个表来实现DELETE语句中的IS NULL条件。

表名为Orders。如下所示:

OID CID Price DoO
1 01 1000.00 03/06/2023
2 05 1500.00 11/06/2023
3 03 NULL 12/06/2023
4 02 2000.00 07/06/2023
5 04 1300.00 04/06/2023

要在数据库中创建上述表格,请执行以下SQL查询。

CREATE TABLE Orders (
  OID INT,
  CID INT,
  Price DECIMAL(10,2),
  DoO DATE
);

INSERT INTO Orders (OID, CID, Price, DoO)
VALUES
  (1, 01, 1000.00, '2023-06-03'),
  (2, 05, 1500.00, '2023-06-11'),
  (3, 03, NULL, '2023-06-12'),
  (4, 02, 2000.00, '2023-06-07'),
  (5, 04, 1300.00, '2023-06-04');
SELECT * FROM Orders;

SQL ISNULL条件

实现以下的DELETE语句:

DELETE FROM Orders
WHERE Price IS NULL;

上述的SQL查询将删除所有Price为NULL的记录。上述表格只显示了一个OID为3的实体。

使用下面的SQL查询来显示删除后的更新表格。

SELECT * FROM Orders;

这是您应该看到的结果:

SQL ISNULL条件

SQL中的ISNULL()函数

当用户想要用特定值替换所有分配为NULL的值时,可以使用ISNULL函数。

ISNULL()语法

在SQL查询中实现ISNULL()函数的语法如下:

ISNULL (Expr, Modified_value)

ISNULL()函数的参数

用户需要在ISNULL()函数中传递两个参数。参数如下:

  • Expr: ISNULL()函数的第一个参数可以是任何表达式,将对其进行NULL值验证。
  • Modified_value: 第二个参数是替换表达式中所有NULL值的值。用户需要确保替换值可以转换为表达式的数据类型。

如果表达式包含或被认为是NULL,则ISNULL函数将返回替换值。但在分配值之前,函数将修改值转换为与表达式求值后的值相同的数据类型。只有当modified_value和表达式的数据类型不同时,才执行转换。

如果表达式求值为非NULL值,则ISNULL()函数将返回表达式的值,因为它保持不变。

SQL中ISNULL()函数的实现

让我们以用户可以实现SQL的ISNULL()函数的不同场景为例。

示例1: 在数值数据上实现SQL ISNULL函数。

我们将使用上面定义的Orders表来实现ISNULL()函数。

OID CID Price DoO
1 01 1000.00 03/06/2023
2 05 1500.00 11/06/2023
3 03 NULL 12/06/2023
4 02 2000.00 07/06/2023
5 04 1300.00 04/06/2023

下面的查询将返回第二个参数,因为第一个参数是NULL。

SELECT OID, CID, ISNULL(Price, 2200.00) AS Price, DoO
FROM Orders;

SQL ISNULL条件

它将使用NULL更新记录,该NULL会被2200.00替换。

用户还可以通过直接使用NULL作为第一个参数来实现ISNULL()函数。

SELECT ISNULL(NULL,100);

SQL ISNULL条件

它只会返回第二个参数,因为第一个参数为空。

使用ISNULL()函数与字符字符串

用户还可以使用ISNULL()函数将NULL替换为第二个参数中的字符串。

示例2: 在下面的示例中,我们将使用ISNULL()函数将NULL值替换为另一个字符串。

SELECT ISNULL (NULL, "hi");

SQL ISNULL条件

让我们尝试使用另一个字符串作为第一个参数的另一个例子。

SELECT ISNULL ("hello", "hi");

SQL ISNULL条件

在这种情况下,它将仅返回第一个参数,因为它不是一个NULL值。

使用有意义的值实现NULL值

在许多情况下,数据分析师往往有大量的数据记录,而数据需要进行清理,可能包含多个NULL值。使用ISNULL函数可以用有意义的值替换这些NULL值。

让我们从创建一个名为division的表开始。它记录了每个运动员在一个比赛中的年龄。表格如下:

PlayerID Name Min_Age Max_Age
1 Aman 18 30
2 Harsh 20 NULL
3 Abhay NULL 35
4 Mayank 20 NULL

实现下面的SQL查询以创建上述表格并插入给定的记录。

CREATE TABLE division (
  PlayerID INT,
  Name VARCHAR(50),
  Min_Age INT,
  Max_Age INT
);
INSERT INTO division (PlayerID, Name, Min_Age, Max_Age)
VALUES
  (1, 'Aman', 18, 30),
  (2, 'Harsh', 20, NULL),
  (3, 'Abhay', NULL, 35),
  (4, 'Mayank', 20, NULL);

实施SELECT查询以确保所有记录都在表中。

SELECT * FROM division;

SQL ISNULL条件

在Max_Age Min_Age列中的NULL值表示特定的运动不需要注册的最大或最小年龄。我们将用适当的值替换NULL值。

使用ISNULL()函数将Min_Age列中的NULL更改为0,并将Max_Age列中的NULL更改为99:

SELECT 
PlayerID, 
Name,
ISNULL(Min_Age,0) Min_Age, 
ISNULL(Max_Age,99) Max_Age
FROM division;

SQL ISNULL条件

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程