ISNULL (Transact-SQL)ISNULL (Transact-SQL)

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síAzure SQL DatabasesíAzure SQL Data Warehouse síAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Sustituye el valor NULL por el valor especificado.Replaces NULL with the specified replacement value.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

-- Syntax for SQL Server, Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse  

ISNULL ( check_expression , replacement_value )  

ArgumentosArguments

check_expressioncheck_expression
Es el expresión para comprobar si hay valores NULL.Is the expression to be checked for NULL. check_expression puede ser de cualquier tipo.check_expression can be of any type.

replacement_valuereplacement_value
Es la expresión que se devuelve si check_expression es NULL.Is the expression to be returned if check_expression is NULL. replacement_value debe ser de un tipo que sea implícitamente convertible al tipo de check_expresssion.replacement_value must be of a type that is implicitly convertible to the type of check_expresssion.

Tipos devueltosReturn Types

Devuelve el mismo tipo que check_expression.Returns the same type as check_expression. Si se proporciona un literal NULL como check_expression, devuelve el tipo de datos de la replacement_value.If a literal NULL is provided as check_expression, returns the datatype of the replacement_value. Si se proporciona un literal NULL como check_expression y no replacement_value se proporciona, se devuelve un int.If a literal NULL is provided as check_expression and no replacement_value is provided, returns an int.

ComentariosRemarks

El valor de check_expression se devuelve si no es NULL; en caso contrario, replacement_value se devuelve después de que se convierte implícitamente al tipo de check_expression, si los tipos son diferentes.The value of check_expression is returned if it is not NULL; otherwise, replacement_value is returned after it is implicitly converted to the type of check_expression, if the types are different. replacement_value se puede truncar si replacement_value es mayor que check_expression.replacement_value can be truncated if replacement_value is longer than check_expression.

Nota

Use COALESCE ( Transact-SQL ) para devolver el primer valor distinto de null.Use COALESCE (Transact-SQL) to return the first non-null value.

EjemplosExamples

A.A. Usar ISNULL con AVGUsing ISNULL with AVG

En el ejemplo siguiente se busca el promedio del peso de todos los productos.The following example finds the average of the weight of all products. Sustituye el valor 50 para todas las entradas NULL en la columna Weight de la tabla Product.It substitutes the value 50 for all NULL entries in the Weight column of the Product table.

USE AdventureWorks2012;  
GO  
SELECT AVG(ISNULL(Weight, 50))  
FROM Production.Product;  
GO  

El conjunto de resultados es el siguiente.Here is the result set.

--------------------------

59.79

(1 row(s) affected)

B.B. Usar ISNULLUsing 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 AdventureWorks2012.The following example selects the description, discount percentage, minimum quantity, and maximum quantity for all special offers in AdventureWorks2012. 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.If the maximum quantity for a particular special offer is NULL, the MaxQty shown in the result set is 0.00.

USE AdventureWorks2012;  
GO  
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'  
FROM Sales.SpecialOffer;  
GO  

El conjunto de resultados es el siguiente.Here is the result set.

DescriptionDescription DiscountPctDiscountPct MinQtyMinQty Cantidad máximaMax Quantity
No DiscountNo Discount 0.000.00 00 00
Volume DiscountVolume Discount 0.020.02 1111 1414
Volume DiscountVolume Discount 0.050.05 1515 44
Volume DiscountVolume Discount 0.100.10 2525 00
Volume DiscountVolume Discount 0.150.15 4141 00
Volume DiscountVolume Discount 0.200.20 6161 00
Cl Mountain-100Mountain-100 Cl 0.350.35 00 00
Sport casco DiSport Helmet Di 0.100.10 00 00
Overst Road-650Road-650 Overst 0.300.30 00 00
Mountain Tire SMountain Tire S 0.500.50 00 00
Sport casco DiSport Helmet Di 0.150.15 00 00
Bicicleta de montaña LL SLL Road Frame S 0.350.35 00 00
Pr Touring-3000Touring-3000 Pr 0.150.15 00 00
Pr Touring-1000Touring-1000 Pr 0.200.20 00 00
Precio medio PedaHalf-Price Peda 0.500.50 00 00
Si Mountain-500Mountain-500 Si 0.400.40 00 00

(16 row(s) affected)

C.C. Comprobar si hay valores NULL en una cláusula WHERETesting for NULL in a WHERE clause

No utilice ISNULL para buscar los valores NULL.Do not use ISNULL to find NULL values. Use IS NULL en su lugar.Use IS NULL instead. En el ejemplo siguiente se buscan todos los productos que tienen NULL en la columna de peso.The following example finds all products that have NULL in the weight column. Tenga en cuenta el espacio entre IS y NULL.Note the space between IS and NULL.

USE AdventureWorks2012;  
GO  
SELECT Name, Weight  
FROM Production.Product  
WHERE Weight IS NULL;  
GO  

Ejemplos: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse and Almacenamiento de datos paralelosParallel Data Warehouse

D.D. Usar ISNULL con AVGUsing ISNULL with AVG

En el ejemplo siguiente se busca el promedio del peso de todos los productos en una tabla de ejemplo.The following example finds the average of the weight of all products in a sample table. Sustituye el valor 50 para todas las entradas NULL en la columna Weight de la tabla Product.It substitutes the value 50 for all NULL entries in the Weight column of the Product table.

-- Uses AdventureWorks  

SELECT AVG(ISNULL(Weight, 50))  
FROM dbo.DimProduct;  

El conjunto de resultados es el siguiente.Here is the result set.

--------------------------   
52.88   

E.E. Usar ISNULLUsing ISNULL

En el ejemplo siguiente se usa ISNULL para comprobar los valores NULL en la columna MinPaymentAmount y mostrar el valor 0.00 para las filas.The following example uses ISNULL to test for NULL values in the column MinPaymentAmount and display the value 0.00 for those rows.

-- 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.Here is a partial result set.

ResellerNameResellerName MinimumPaymentMinimumPayment
Una asociación de bicicletaA Bicycle Association 0.00000.0000
Un almacén de bicicletaA Bike Store 0.00000.0000
Una tienda de cicloA Cycle Shop 0.00000.0000
Una gran empresa de bicicletaA Great Bicycle Company 0.00000.0000
Una tienda de bicicletas típicoA Typical Bike Shop 200.0000200.0000
Servicio & ventas aceptablesAcceptable Sales & Service 0.00000.0000

F.F. Uso de IS NULL para probar si hay valores NULL en una cláusula WHEREUsing IS NULL to test for NULL in a WHERE clause

En el ejemplo siguiente se busca todos los productos que tienen NULL en la Weight columna.The following example finds all products that have NULL in the Weight column. Tenga en cuenta el espacio entre IS y NULL.Note the space between IS and NULL.

-- Uses AdventureWorks  

SELECT EnglishProductName, Weight  
FROM dbo.DimProduct  
WHERE Weight IS NULL;  

Vea tambiénSee Also

Expresiones ( Transact-SQL ) Expressions (Transact-SQL)
ES NULL ( Transact-SQL ) IS NULL (Transact-SQL)
Funciones del sistema (Transact-SQL) System Functions (Transact-SQL)
DONDE ( Transact-SQL ) WHERE (Transact-SQL)
COALESCE ( Transact-SQL )COALESCE (Transact-SQL)