¿Cómo usar valores NULL dentro de la cláusula NOT IN en SQL?

En este artículo, veremos cómo usar valores NULL dentro de la cláusula NOT IN en SQL. NULL tiene un estado especial en SQL. Representa la ausencia de valor, por lo que no se puede utilizar para comparar. Si lo usa para comparar, siempre devolverá NULL. 

Para usar el valor NULL en la cláusula NOT IN, podemos hacer una subconsulta separada para incluir valores NULL .

Haga una cláusula where separada para NULL como:

Consulta:

WHERE value IS NULL;

Paso 1: Creación de la base de datos

Use la siguiente instrucción SQL para crear una base de datos llamada geeks;

Consulta:

CREATE DATABASE geeks;

Paso 2: Uso de la base de datos

Use la siguiente instrucción SQL para cambiar el contexto de la base de datos a geeks:

Consulta:

USE geeks;

Paso 3: creación de tablas

Tenemos la siguiente demo_table en la base de datos de nuestro geek.

Consulta:

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

Paso 4: Insertar datos en una tabla

Consulta:

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');

Paso 5: Ver datos de la tabla

Consulta:

SELECT * FROM demo_table;

Producción:

Paso 6: uso de valores NULL en NOT NULL

Para la demostración, devolveremos los valores de la tabla cuya EDAD no es un valor NULL.

Consulta:

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

Producción:

Si desea agregar valores en la cláusula NOT IN, defina una cláusula NOT IN separada con el operador AND. Si agrega el valor dentro de la misma cláusula NOT IN, devolverá NULL.

Consulta:

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

Producción:

Mesa vacía devuelta.

La forma correcta de agregar otros valores en la cláusula NOT IN con valores NULL:

Consulta:

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

Producción:

Publicación traducida automáticamente

Artículo escrito por romy421kumari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *