Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia administrada de Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de SQL Analytics en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
NULL Reemplaza por el valor de reemplazo especificado.
Convenciones de sintaxis de Transact-SQL
Sintaxis
ISNULL ( check_expression , replacement_value )
Argumentos
check_expression
Expresión que se va a comprobar para NULL.
check_expression puede ser de cualquier tipo.
replacement_value
Expresión que se va a devolver 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 valores devueltos
Devuelve el mismo tipo que check_expression. Si se proporciona un literal NULL como check_expression, ISNULL devuelve el tipo de datos del replacement_value. Si se proporciona un literal NULL como check_expression y no se proporciona ningún replacement_value , ISNULL devuelve un valor int.
Comentarios
El valor de check_expression se devuelve si no NULLes . De lo contrario, se devuelve replacement_value después de convertir implícitamente 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 para devolver el primer valor distinto de NULL.
Ejemplos
Los ejemplos de código de este artículo usan la base de datos de ejemplo de AdventureWorks2025 o AdventureWorksDW2025, que puede descargar de la página principal de Ejemplos de Microsoft SQL Server y proyectos de comunidad.
A Uso de ISNULL con AVG
En el ejemplo siguiente se busca el promedio del peso de todos los productos. Sustituye el valor 50 de todas las NULL entradas de la Weight columna de la Product tabla.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Este es el conjunto de resultados.
59.79
B. Uso de 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 AdventureWorks2025. Si la cantidad máxima de una oferta especial determinada es NULL, el MaxQty que se muestra 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
Este es el conjunto de resultados.
| Descripción | DiscountPct | MinQty | Cantidad máxima |
|---|---|---|---|
No Discount |
0.00 | 0 | 0 |
Volume Discount 11 to 14 |
0.02 | 11 | 14 |
Volume Discount 15 to 24 |
0,05 | 15 | 24 |
Volume Discount 25 to 40 |
0,10 | 25 | 40 |
Volume Discount 41 to 60 |
0,15 | 41 | 60 |
Volume Discount over 60 |
0,20 | 61 | 0 |
Mountain-100 Clearance Sale |
0.35 | 0 | 0 |
Sport Helmet Discount-2002 |
0,10 | 0 | 0 |
Road-650 Overstock |
0,30 | 0 | 0 |
Mountain Tire Sale |
0.50 | 0 | 0 |
Sport Helmet Discount-2003 |
0,15 | 0 | 0 |
LL Road Frame Sale |
0.35 | 0 | 0 |
Touring-3000 Promotion |
0,15 | 0 | 0 |
Touring-1000 Promotion |
0,20 | 0 | 0 |
Half-Price Pedal Sale |
0.50 | 0 | 0 |
Mountain-500 Silver Clearance Sale |
0.40 | 0 | 0 |
En el ejemplo siguiente se usa ISNULL para reemplazar un NULL valor para Color, por la cadena None.
USE AdventureWorks2022;
GO
SELECT ProductID,
Name,
ProductNumber,
ISNULL(Color, 'None') AS Color
FROM Production.Product;
A continuación se muestra un conjunto parcial de resultados.
| ProductID | Nombre | ProductNumber | Color |
|---|---|---|---|
| 1 | Adjustable Race |
AR-5381 | Ninguno |
| 2 | Bearing Ball |
BA-8327 | Ninguno |
| 3 | BB Ball Bearing |
BE-2349 | Ninguno |
| 4 | Headset Ball Bearings |
BE-2908 | Ninguno |
| 316 | Blade |
BL-2036 | Ninguno |
| 317 | LL Crankarm |
CA-5965 | Negro |
| 318 | ML Crankarm |
CA-6738 | Negro |
| 319 | HL Crankarm |
CA-7457 | Negro |
C. Prueba de NULL en una cláusula WHERE
No use ISNULL para buscar NULL valores. En su lugar, use IS NULL. 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. Uso de 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 de todas las NULL entradas de la Weight columna de la Product tabla.
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Este es el conjunto de resultados.
52.88
E. Uso de ISNULL
En el ejemplo siguiente se usa ISNULL para probar los NULL valores de la columna MinPaymentAmount y mostrar el valor 0.00 de 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. Uso de 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 AdventureWorksDW
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;