ISNULL (Transact-SQL)
Se aplica a: punto de conexión de SQL Server Azure SQL Database Azure SQL Instancia administrada punto de conexión de SQL Analytics Analytics Platform System (PDW) de SQL Analytics System (PDW) de SQL Server en Microsoft Fabric Warehouse en Microsoft Fabric
Sustituye el valor NULL por el valor especificado.
Convenciones de sintaxis de Transact-SQL
Sintaxis
ISNULL ( check_expression , replacement_value )
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.
Argumentos
check_expression
Es la expresión que se va a comprobar si es NULL. check_expression puede ser de cualquier tipo.
replacement_value
Es la expresión que se devuelve si check_expression es NULL. valor_de_reemplazo debe ser de un tipo que se pueda convertir implícitamente en el tipo de expresión_de_comprobación.
Tipos de valor devuelto
Devuelve el mismo tipo que check_expression. Si se proporciona un literal NULL como check_expression, devuelve el tipo de datos de replacement_value. Si se proporciona un literal NULL como check_expression y no se proporciona replacement_value, se devuelve un int.
Observaciones
El valor de check_expression se devuelve si no es NULL; de lo contrario, se devuelve replacement_value después de convertirse de forma implícita al tipo de check_expression, si los tipos son diferentes. replacement_value se puede truncar si replacement_value es mayor que check_expression.
Nota:
Use COALESCE (Transact-SQL) para devolver el primer valor distinto de NULL.
Ejemplos
A. Usar ISNULL con AVG
En el ejemplo siguiente se busca el promedio del peso de todos los productos. Sustituye el valor 50
para todas las entradas NULL en la columna Weight
de la tabla Product
.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
El conjunto de resultados es el siguiente:
--------------------------
59.79
(1 row(s) affected)
B. Usar ISNULL
En el siguiente ejemplo se selecciona la descripción, el porcentaje de descuento, la cantidad mínima y la cantidad máxima de todas las ofertas especiales de AdventureWorks2022
. Si la cantidad máxima de una oferta especial determinada es NULL, el valor de MaxQty
mostrado en el conjunto de resultados es 0.00
.
USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
El conjunto de resultados es el siguiente:
Descripción | DiscountPct | MinQty | Cantidad máxima |
---|---|---|---|
No Discount | 0.00 | 0 | 0 |
Volume Discount | 0.02 | 11 | 14 |
Volume Discount | 0,05 | 15 | 4 |
Volume Discount | 0,10 | 25 | 0 |
Volume Discount | 0,15 | 41 | 0 |
Volume Discount | 0,20 | 61 | 0 |
Mountain-100 Cl | 0.35 | 0 | 0 |
Sport Helmet Di | 0,10 | 0 | 0 |
Road-650 Overst | 0,30 | 0 | 0 |
Mountain Tire S | 0.50 | 0 | 0 |
Sport Helmet Di | 0,15 | 0 | 0 |
LL Road Frame S | 0.35 | 0 | 0 |
Touring-3000 Pr | 0,15 | 0 | 0 |
Touring-1000 Pr | 0,20 | 0 | 0 |
Half-Price Peda | 0.50 | 0 | 0 |
Mountain-500 Si | 0.40 | 0 | 0 |
(16 row(s) affected)
C. Comprobar si hay valores NULL en una cláusula WHERE
No utilice ISNULL para buscar los valores NULL. Use IS NULL en su lugar. En el ejemplo siguiente se buscan todos los productos que tienen NULL
en la columna de peso. Tenga en cuenta el espacio entre IS
y NULL
.
USE AdventureWorks2022;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO
Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)
D. Usar ISNULL con AVG
En el ejemplo siguiente se busca el promedio del peso de todos los productos en una tabla de ejemplo. Sustituye el valor 50
para todas las entradas NULL en la columna Weight
de la tabla Product
.
-- Uses AdventureWorks
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
El conjunto de resultados es el siguiente:
--------------------------
52.88
E. Usar ISNULL
En el ejemplo siguiente se usa ISNULL para comprobar los valores NULL en la columna MinPaymentAmount
y mostrar el valor 0.00
para esas filas.
-- Uses AdventureWorks
SELECT ResellerName,
ISNULL(MinPaymentAmount,0) AS MinimumPayment
FROM dbo.DimReseller
ORDER BY ResellerName;
A continuación se muestra un conjunto parcial de resultados.
ResellerName | MinimumPayment |
---|---|
Una asociación de bicicleta | 0.0000 |
Una tienda de bicicletas | 0.0000 |
Una tienda de bicis | 0.0000 |
Una gran empresa de bicicletas | 0.0000 |
La típica tienda de bicicletas | 200.0000 |
Servicio y ventas aceptables | 0.0000 |
F. Usar IS NULL para probar NULL en una cláusula WHERE
En el ejemplo siguiente se buscan todos los productos que tienen NULL
en la columna Weight
. Tenga en cuenta el espacio entre IS
y NULL
.
-- Uses AdventureWorks
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;
Consulte también
Expresiones (Transact-SQL)
IS NULL (Transact-SQL)
Funciones del sistema (Transact-SQL)
WHERE (Transact-SQL)
COALESCE (Transact-SQL)
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de