📜  如何在 SQL 中的 NOT IN 子句中使用 NULL 值?

📅  最后修改于: 2022-05-13 01:55:03.067000             🧑  作者: Mango

如何在 SQL 中的 NOT IN 子句中使用 NULL 值?

在本文中,我们将看到如何在 SQL 中的 NOT IN 子句中使用 NULL 值。 NULL 在 SQL 中具有特殊的地位。它代表没有价值,因此不能用于比较。如果使用它进行比较,它将始终返回 NULL。

为了在 NOT IN 子句中使用 NULL 值,我们可以创建一个单独的子查询来包含 NULL 值。

为 NULL 创建一个单独的 where 子句,例如:

询问:



WHERE value IS NULL;

第 1 步:创建数据库

使用以下 SQL 语句创建名为 geeks 的数据库;

询问:

CREATE DATABASE geeks;

第 2 步:使用数据库

使用以下 SQL 语句将数据库上下文切换到 geeks:

询问:

USE geeks;

第 3 步:表创建

我们的极客数据库中有以下 demo_table。



询问:

CREATE TABLE demo_table(
NAME VARCHAR(20),
GENDER VARCHAR(20),
AGE INT,
CITY VARCHAR(20) );

第 4 步:向表中插入数据

询问:

INSERT INTO demo_table VALUES
('ROMY KUMARI', 'FEMALE', NULL, 'NEW DELHI'),
('PUSHKAR JHA', 'MALE',24, 'NEW DELHI'),
('RINKLE ARORA', 'FEMALE',23, 'PUNJAB'),
('AKASH GUPTA', 'MALE', NULL, 'UTTAR PRADESH'),
('NIKHIL KALRA', 'MALE', 23, 'PUNJAB'),
('SHALINI JHA','FEMALE', 22, 'DELHI');

第五步:查看表的数据

询问:

SELECT * FROM demo_table;

输出:

步骤 6:在 NOT NULL 中使用 NULL 值

为了演示,我们将从表中返回 AGE 不是 NULL 值的值。

询问:



SELECT * FROM demo_table WHERE AGE NOT IN (SELECT AGE WHERE AGE IS NULL);

输出:

如果要在 NOT IN 子句中添加值,请使用 AND运算符定义单独的 NOT IN 子句。如果在同一个 NOT IN 子句中添加该值,它将返回 NULL。

询问:

SELECT * FROM demo_table WHERE AGE NOT IN ((SELECT AGE WHERE AGE IS NULL),24);

输出:

返回空表。

在 NOT IN 子句中使用 NULL 值添加其他值的正确方法:

询问:

SELECT * FROM demo_table WHERE AGE NOT IN (SELECT AGE WHERE AGE IS NULL) and AGE NOT IN (24);

输出: