logo

Función ISNULL de SQL Server

Es una función incorporada en SQL Server. Permite al usuario reemplazar los valores NULL con un valor de reposición determinado. Este artículo ofrece una descripción completa de la función ISNULL para devolver un valor alternativo si la expresión o los registros de la tabla tienen valores NULL.

Sintaxis

La siguiente es una sintaxis que ilustra la función ISNULL:

 ISNULL ( Expression, Replacement ) 

Como podemos ver, esta sintaxis acepta solo dos argumentos:

    Expresión: Se utiliza para comprobar si hay NULL. Puede ser de cualquier tipo.Reemplazo: Es el valor que se devolverá cuando la expresión sea NULL. Debe ser implícitamente convertible a un valor del tipo expresión.

Si la expresión se evalúa como NULL, esta función reemplaza el valor NULL con el valor de reemplazo. Cuando el argumento los tipos de datos son diferentes , el servidor SQL transforma implícitamente el tipo de datos del valor de reemplazo al tipo de datos de expresión antes de devolver un valor. Obtendremos el valor de la expresión cuando la expresión no sea NULL.

La función ISNULL puede funcionar en SQL Server (a partir de 2008), Parallel Data Warehouse, Azure SQL Database y Azure SQL Data Warehouse.

Ejemplo de función ISNULL

Exploremos la función ISNULL con algunos ejemplos en SQL Server.

instalar experto

1. Función ISNULL con el valor numérico

El siguiente ejemplo utiliza la función ISNULL. Aquí el primer argumento es NULL; por lo tanto, devuelve el valor de un segundo argumento en un resultado:

cómo rehacer en photoshop
 SELECT ISNULL(NULL, 25) AS Result; 

Después de la ejecución, obtendremos el siguiente resultado:

Función ISNULL de SQL Server

2. Función ISNULL con datos de cadena de caracteres

El siguiente ejemplo utiliza la función ISNULL. Aquí obtendremos el valor de la cadena. 'Hola' porque es el primer argumento. A partir de la definición de la función ISNULL(), devuelve el valor del primer argumento cuando NO es NULO:

 SELECT ISNULL('Hello', 'Javatpoint') AS Result; 

Después de la ejecución, obtendremos el siguiente resultado:

Función ISNULL de SQL Server

3. Función ISNULL con variables

El siguiente ejemplo utiliza la función ISNULL y devuelve el resultado utilizando una variable:

 DECLARE @expres VARCHAR(45); DECLARE @value VARCHAR(25); SET @expres = NULL; SET @value = 'Javatpoint'; SELECT ISNULL(@expres, @value) AS Result; 

Después de la ejecución, obtendremos el siguiente resultado:

Función ISNULL de SQL Server

4. Función ISNULL en la tabla

Aquí veremos cómo podemos reemplazar el valor de una columna con un valor significativo cuando contiene valores nulos. Primero creemos una tabla llamada ' Empleado' usando la siguiente declaración:

 CREATE TABLE Employee (ID INT IDENTITY PRIMARY KEY, Emp_Name VARCHAR(50) NOT NULL, Age INT NULL, Salary INT NULL ); 

Ahora, insertaremos algunos valores en esta tabla usando la siguiente declaración:

 INSERT INTO Employee (Emp_Name, Age, Salary) VALUES ('Kevin Huges', 28, 45000), ('Rose Bennet', NULL, 36000), ('Peter Butler', 25, NULL); 

Cuando verificamos la tabla, podemos ver que los empleados 2 y 3 tienen un NULL valor.

Función ISNULL de SQL Server

Supongamos que queremos reemplazar los valores NULL de estas columnas sin actualizarlos permanentemente en la tabla. En ese caso, podemos usar la función ISNULL para reemplazar los valores NULL con el valor específico.

Por ejemplo , queremos devolver el edad y salario del empleado con 22 y 25000, respectivamente, si sus columnas tienen valores NULL en la tabla Empleado. Podemos hacer esto usando la siguiente declaración:

par java
 SELECT ID, Emp_Name, ISNULL(Age, 22) AS Age, ISNULL(Salary, 25000) AS Salary FROM Employee; 

Después de la ejecución, obtendremos el siguiente resultado:

Función ISNULL de SQL Server

Si ejecutamos la consulta con la función ISNULL para la columna donde ninguna columna tiene valores NULL en la tabla, esta consulta devolverá los valores reales de las filas.

Por ejemplo , hemos actualizado el salario del empleado cuyo ID=2 como sigue:

 UPDATE Employee SET Salary = 65000 WHERE ID=2; 

Nuevamente, si ejecutamos la función ISNULL, no cambia la columna de salario. Vea el siguiente resultado:

Función ISNULL de SQL Server

5. ISNULL con funciones agregadas

SQL Server también nos permite utilizar funciones agregadas como SUM, AVG con la función ISNULL. Supongamos que podríamos necesitar obtener el suma de un salario columna presente en la tabla Empleado, y si alguna columna de salario tiene NULL, se reemplazará con 25000 antes de agregar los salarios.

Antes de realizar los métodos agregados, actualizaremos el salario del empleado con NULL cuya identificación es 2, utilizando la siguiente consulta.

 UPDATE Employee SET Salary = NULL WHERE ID=2; 

El siguiente ejemplo primero reemplaza el valor NULL con 25000 y luego realiza la función SUM en él. Vea el siguiente resultado:

mapa hash
 SELECT SUM(ISNULL(Salary, 25000)) AS Sum_of_Salaries FROM Employee; 

Después de la ejecución, obtendremos el siguiente resultado:

Función ISNULL de SQL Server

De manera similar, la función ISNULL se puede usar para reemplazar valores NULL y luego devolver el valor promedio con Función AVG() . Vea la siguiente declaración:

 SELECT AVG(ISNULL(Salary, 25000)) AS Avg_of_Salaries FROM Employee; 

Después de la ejecución, obtendremos el siguiente resultado:

Función ISNULL de SQL Server

Diferencia entre SQL Server ISNULL con IS NULL

Las funciones ISNULL e IS NULL son diferentes en SQL Server. Usamos la función ISNULL cuando necesitamos reemplazar los valores NULL con un valor especificado. Por otro lado, usamos la función IS NULL cuando queremos identificar valores NULL en una mesa.

Veamos el siguiente ejemplo para ilustrar sus diferencias. .

js cadena multilínea

Supongamos que queremos obtener los datos de los empleados del ' Empleado' tabla que contiene valores NULL en la columna Salario. Para obtener este tipo de información, debemos usar la función IS NULL en el DÓNDE cláusula de la siguiente manera:

 SELECT * FROM Employee WHERE Salary IS NULL; 

Devolverá el detalle del empleado cuyo salario es NULL:

Función ISNULL de SQL Server

Ahora, si intentamos obtener este tipo de información con la función ISNULL, SQL Server a través de lo siguiente error :

 SELECT * FROM Employee WHERE Salary ISNULL(NULL, 0; 

Aquí está el error:

Función ISNULL de SQL Server

Por lo tanto, está claro que SQL Server no nos permite usar ISNULL para encontrar valores NULL.