ISNULL (Transact-SQL)
Reemplaza NULL con el valor de reemplazo especificado.
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 AdventureWorks2008R2; GO SELECT AVG(ISNULL(Weight, 50)) FROM Production.Product; GO
El conjunto de resultados es el siguiente.
--------------------------
59.79
(1 fila afectada)
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 AdventureWorks2008R2. 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 AdventureWorks2008R2; GO SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity' FROM Sales.SpecialOffer; GO
El conjunto de resultados es el siguiente.
Description DiscountPct MinQty Max Quantity
--------------- ------------- -------- ---------------
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 filas afectadas)
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 AdventureWorks2008R2; GO SELECT Name, Weight FROM Production.Product WHERE Weight IS NULL; GO
