Función SQL `NVL`: ¿cómo reemplazar los valores NULL?

NVL en SQL significa “valor nulo” y sirve para reemplazar valores nulos por valores más significativos 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 rendimiento de las consultas.

¿Qué es la función SQL NVL?

Quienes trabajan habitualmente con bases de datos y necesitan datos completos para realizar análisis conocen bien la problemática de los valores NULL. La falta de información y los huecos pueden llevar a resultados distorsionados, informes no aprovechables e imprecisiones, 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 personalizados más significativos, lo que permite mejorar la calidad y utilidad de los datos, así como el rendimiento de las bases de datos.

¿Cómo funciona SQL NVL?

El funcionamiento de SQL NVL es simple: basta con definir el valor con el que se quiere reemplazar los valores NULL en el resultado. La función busca entonces valores verdaderos o falsos en los registros seleccionados y reemplaza automáticamente los valores NULL que encuentre por la información deseada. Por regla general, los valores NULL en filas y columnas representan datos que faltan, por lo que no deben confundirse con un valor numérico “0” o espacios en blanco.

No obstante, ten en cuenta que SQL NVL se usa principalmente en bases de datos ORACLE. En MySQL o SQL Server, la función NVL se ha remplazado por la función ISNULL. Si deseas reemplazar 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 funcionalidad sigue siendo la misma en estos casos.

Consejo

¿Quieres aprender a utilizar el popular lenguaje de programación SQL? En nuestra introducción a SQL con ejemplos tienes información básica para iniciarte en su uso.

Diferencia entre NVL, ISNULL e IFNULL

Dependiendo 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 disponibles 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 reemplazar valores NULL.

La sintaxis y los parámetros

Las funciones SQL NVL, ISNULL e IFNULL requieren cada una dos parámetros, que en este caso denominamos “valor1” y “valor2”:

  • el valor1 especifica el conjunto de datos o la columna en la que quieres buscar y reemplazar valores NULL;
  • el valor2 representa el valor por el que quieres sustituir los valores NULL en los resultados. Aquí puedes introducir información más significativa, como “Sin especificación”, “0” o “Desconocido” para eliminar huecos y espacios vacíos.

A continuació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 especificar los conjuntos de datos que se van a comprobar.

Diferencias entre SQL NVL, ISNULL e IFNULL

Exponemos a continuación las diferencias entre estas funciones utilizadas para manejar valores NULL:

Función SQL Qué hace con los valores NULL Compatibilidad
SQL NVL Sustituye los valores NULL que encuentra por un valor determinado Oracle, Db2
SQL ISNULL Sustituye los valores NULL o las cadenas vacías por un valor determinado SQL Server, MySQL, MS ACCESS
SQL IFNULL Sustituye los valores NULL por un valor determinado y no interpreta los espacios en blanco como valores NULL MySQL, Google BigQuery

Posibles usos de NVL

Reemplazar valores NULL puede ser útil cuando hay que hacer lo siguiente:

  • sustituir datos de clientes o direcciones de entrega que faltan por valores legibles como “desconocido”;
  • reemplazar saldos de cuentas o transacciones desconocidas por el valor numérico 0;
  • cambiar valores vacíos en datos de pacientes, financieros o de producción por valores estándar o promedios;
  • sustituir evaluaciones que faltan o feedback inexistente por las palabras “sin información”;
  • sustituir imágenes o información que faltan por “imagen no disponible” o “no hay información disponible”.
Consejo

¿Quieres gestionar datos de manera eficiente con un rendimiento fiable, una capacidad escalable y una alta disponibilidad? Si es así, apuesta por la protección de datos alemana y utiliza SQL Server Hosting de IONOS, en donde encontrarás ofertas personalizadas de servidores y hosting.

Servidores virtuales VPS
Virtualización completa con acceso root
  • Ancho de banda de hasta 1 Gb/s y tráfico ilimitado
  • Almacenamiento SSD NVMe ultrarrápido
  • Incluye: edición Plesk Web Host

Ejemplos de uso del operador SQL NVL

Para ilustrar el uso de NVL, ISNULL y IFNULL, presentamos como ejemplo una tabla de clientes con columnas para dirección, edad e ID (identificación) del cliente. En ella, queremos sustituir los valores NULL que puedan figurar en “dirección” por el valor “no especificado”.

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

Alternativas a SQL NVL

Las funciones NVL, ISNULL e IFNULL son casi idénticas, pero para usarlas debes comprobar que estén disponibles en tu base de datos. Una alternativa, que es casi la misma entre los comandos de SQL, operadores de SQL y funciones es SQL COALESCE. COALESCE está disponible en casi todas las aplicaciones de bases de datos y permite reemplazar los valores NULL que encuentra por un valor de sustitución.

En este caso, la sintaxis es idéntica:

COALESCE(valor1, valor2)
sql
¿Le ha resultado útil este artículo?
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador en nuestra. Política de Cookies.
Page top