NVL en SQL significa “valor nulo” y sirve para re­em­pla­zar valores nulos por valores más si­g­ni­fi­ca­ti­vos en conjuntos de datos y bases de datos. De este modo, es posible organizar bases de datos, aumentar la claridad en análisis e informes y optimizar el re­n­di­mie­n­to de las consultas.

¿Qué es la función SQL NVL?

Quienes trabajan ha­bi­tua­l­me­n­te con bases de datos y necesitan datos completos para realizar análisis conocen bien la pro­ble­má­ti­ca de los valores NULL. La falta de in­fo­r­ma­ción y los huecos pueden llevar a re­su­l­ta­dos di­s­to­r­sio­na­dos, informes no apro­ve­cha­bles e im­pre­ci­sio­nes, lo cual puede evitarse mediante el uso de SQL NVL (Null-Value Logic). Con esta útil función se pueden remplazar columnas y campos vacíos por valores o cadenas pe­r­so­na­li­za­dos más si­g­ni­fi­ca­ti­vos, lo que permite mejorar la calidad y utilidad de los datos, así como el re­n­di­mie­n­to de las bases de datos.

¿Cómo funciona SQL NVL?

El fu­n­cio­na­mie­n­to de SQL NVL es simple: basta con definir el valor con el que se quiere re­em­pla­zar los valores NULL en el resultado. La función busca entonces valores ve­r­da­de­ros o falsos en los registros se­le­c­cio­na­dos y reemplaza au­to­má­ti­ca­me­n­te los valores NULL que encuentre por la in­fo­r­ma­ción deseada. Por regla general, los valores NULL en filas y columnas re­pre­se­n­tan datos que faltan, por lo que no deben co­n­fu­n­di­r­se con un valor numérico “0” o espacios en blanco.

No obstante, ten en cuenta que SQL NVL se usa pri­n­ci­pa­l­me­n­te en bases de datos ORACLE. En MySQL o SQL Server, la función NVL se ha re­m­pla­za­do por la función ISNULL. Si deseas re­em­pla­zar valores NULL en bases de datos, utiliza la función ISNULL en SQL Server y MS ACCESS. En MySQL, utiliza las funciones IFNULL o COALESCE. La fu­n­cio­na­li­dad sigue siendo la misma en estos casos.

Consejo

¿Quieres aprender a utilizar el popular lenguaje de pro­gra­ma­ción SQL? En nuestra in­tro­du­c­ción a SQL con ejemplos tienes in­fo­r­ma­ción básica para iniciarte en su uso.

Di­fe­re­n­cia entre NVL, ISNULL e IFNULL

De­pe­n­die­n­do del tipo de base de datos que se utilice, es posible confundir NVL, ISNULL e IFNULL. Las tres funciones son muy similares, pero no están di­s­po­ni­bles en todas las bases de datos y sistemas de gestión de bases de datos. Nuestro resumen puede ayudarte a elegir la función correcta para re­em­pla­zar valores NULL.

La sintaxis y los pa­rá­me­tros

Las funciones SQL NVL, ISNULL e IFNULL requieren cada una dos pa­rá­me­tros, que en este caso de­no­mi­na­mos “valor1” y “valor2”:

  • el valor1 es­pe­ci­fi­ca el conjunto de datos o la columna en la que quieres buscar y re­em­pla­zar valores NULL;
  • el valor2 re­pre­se­n­ta el valor por el que quieres sustituir los valores NULL en los re­su­l­ta­dos. Aquí puedes in­tro­du­cir in­fo­r­ma­ción más si­g­ni­fi­ca­ti­va, como “Sin es­pe­ci­fi­ca­ción”, “0” o “De­s­co­no­ci­do” para eliminar huecos y espacios vacíos.

A co­n­ti­nua­ción, te mostramos la sintaxis de las tres funciones.

NVL:

NVL(valor1, valor2)
sql

ISNULL:

ISNULL(valor1, valor2)
sql

IFNULL:

IFNULL(valor1, valor2)
sql

Las funciones se suelen utilizar junto con SQL SELECT y FROM, las cuales sirven para es­pe­ci­fi­car los conjuntos de datos que se van a comprobar.

Di­fe­re­n­cias entre SQL NVL, ISNULL e IFNULL

Exponemos a co­n­ti­nua­ción las di­fe­re­n­cias entre estas funciones uti­li­za­das para manejar valores NULL:

Función SQL Qué hace con los valores NULL Co­m­pa­ti­bi­li­dad
SQL NVL Sustituye los valores NULL que encuentra por un valor de­te­r­mi­na­do Oracle, Db2
SQL ISNULL Sustituye los valores NULL o las cadenas vacías por un valor de­te­r­mi­na­do SQL Server, MySQL, MS ACCESS
SQL IFNULL Sustituye los valores NULL por un valor de­te­r­mi­na­do y no in­te­r­pre­ta los espacios en blanco como valores NULL MySQL, Google BigQuery

Posibles usos de NVL

Re­em­pla­zar valores NULL puede ser útil cuando hay que hacer lo siguiente:

  • sustituir datos de clientes o di­re­c­cio­nes de entrega que faltan por valores legibles como “de­s­co­no­ci­do”;
  • re­em­pla­zar saldos de cuentas o tra­n­sac­cio­nes de­s­co­no­ci­das por el valor numérico 0;
  • cambiar valores vacíos en datos de pacientes, fi­na­n­cie­ros o de pro­du­c­ción por valores estándar o promedios;
  • sustituir eva­lua­cio­nes que faltan o feedback in­e­xi­s­te­n­te por las palabras “sin in­fo­r­ma­ción”;
  • sustituir imágenes o in­fo­r­ma­ción que faltan por “imagen no di­s­po­ni­ble” o “no hay in­fo­r­ma­ción di­s­po­ni­ble”.
Consejo

¿Quieres gestionar datos de manera eficiente con un re­n­di­mie­n­to fiable, una capacidad escalable y una alta di­s­po­ni­bi­li­dad? Si es así, apuesta por la pro­te­c­ción de datos alemana y utiliza SQL Server Hosting de IONOS, en donde en­co­n­tra­rás ofertas pe­r­so­na­li­za­das de se­r­vi­do­res y hosting.

Se­r­vi­do­res virtuales (VPS)
VPS rentables en se­r­vi­do­res Dell En­te­r­pri­se
  • 1 Gb/s de ancho de banda y tráfico ilimitado
  • 99,99 % de tiempo de actividad y ce­r­ti­fi­ca­ción ISO
  • Soporte 24/7 ga­la­r­do­na­do y asesor personal

Ejemplos de uso del operador SQL NVL

Para ilustrar el uso de NVL, ISNULL y IFNULL, pre­se­n­ta­mos como ejemplo una tabla de clientes con columnas para dirección, edad e ID (ide­n­ti­fi­ca­ción) del cliente. En ella, queremos sustituir los valores NULL que puedan figurar en “dirección” por el valor “no es­pe­ci­fi­ca­do”.

Ejemplo de SQL NVL

SELECT  dirección, edad, IDcliente, NVL(dirección,  'no especificado')
FROM  clientes
sql

Ejemplo de SQL ISNULL

SELECT  dirección, edad, Idcliente, ISNULL(dirección,  'no especificado')
FROM  clientes
sql

Ejemplo de SQL IFNULL

SELECT  dirección, edad, Idcliente, IFNULL(dirección,  'no especificado')
FROM  clientes
sql

Al­te­r­na­ti­vas a SQL NVL

Las funciones NVL, ISNULL e IFNULL son casi idénticas, pero para usarlas debes comprobar que estén di­s­po­ni­bles en tu base de datos. Una al­te­r­na­ti­va, que es casi la misma entre los comandos de SQL, ope­ra­do­res de SQL y funciones es SQL COALESCE. COALESCE está di­s­po­ni­ble en casi todas las apli­ca­cio­nes de bases de datos y permite re­em­pla­zar los valores NULL que encuentra por un valor de su­s­ti­tu­ción.

En este caso, la sintaxis es idéntica:

COALESCE(valor1, valor2)
sql
Ir al menú principal