NULL y UNKNOWN (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric
NULL
indica que el valor es desconocido. Un valor NULL no es lo mismo que un valor cero o vacío. No hay dos valores NULL que sean iguales. Las comparaciones entre dos valores NULL, o entre un valor NULL y cualquier otro valor, devuelven desconocidos porque el valor de cada uno NULL
es desconocido.
Normalmente, los valores NULL indican que los datos son desconocidos, no aplicables o que se van a agregar posteriormente. Por ejemplo, es posible que la inicial central de un cliente no se conozca en el momento en que el cliente realiza un pedido.
Ten en cuenta:
Para probar si hay valores NULL en una consulta, use
IS NULL
oIS NOT NULL
en laWHERE
cláusula .Puede insertar valores NULL en una columna indicando
NULL
explícitamente en unaINSERT
instrucción oUPDATE
o dejando una columna fuera de unaINSERT
instrucción.Los valores NULL no se pueden usar como información necesaria para distinguir una fila de una tabla de otra fila de una tabla. Algunos ejemplos son las claves principales o para obtener información que se usa para distribuir filas, como las claves de distribución.
Comentarios
Cuando los valores NULL están presentes en los datos, los operadores lógicos y de comparación pueden devolver un tercer resultado en lugar de UNKNOWN
simplemente TRUE
o FALSE
. Esta necesidad de una lógica de tres valores es el origen de muchos errores de la aplicación. Los operadores lógicos de una expresión booleana que incluye UNKNOWN
devuelven UNKNOWN
, a menos que el resultado del operador no dependa de la UNKNOWN
expresión. En estas tablas se proporcionan ejemplos de este comportamiento.
En la tabla siguiente se muestran los resultados de aplicar un AND
operador a dos expresiones booleanas donde una expresión devuelve UNKNOWN
.
Expresión 1 | Expresión 2 | Resultado |
---|---|---|
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
FALSE |
En la tabla siguiente se muestran los resultados de aplicar un OR
operador a dos expresiones booleanas donde una expresión devuelve UNKNOWN
.
Expresión 1 | Expresión 2 | Resultado |
---|---|---|
TRUE |
UNKNOWN |
TRUE |
UNKNOWN |
UNKNOWN |
UNKNOWN |
FALSE |
UNKNOWN |
UNKNOWN |