Saltar al contenido principal
InicioTutorialesSQL

Función SQL COALESCE

COALESCE() es una de las funciones más útiles de SQL. Lee este tutorial para aprender a dominarlo.
may 2024  · 4 min leer

¿Qué es el COALESCE() ¿función?

Coalesce devuelve el primer valor no nulo de una lista. Si todos los valores de la lista son NULL, la función devuelve null. 

Cuándo utilizar COALESCE()?

Esta función es útil cuando se combinan los valores de varias columnas en una sola. 

Por ejemplo, una tabla llamada usuarios contiene los valores de los usuarios work_email y personal_email.

Usando la función COALESCE(), podemos crear una columna llamada email, que muestra el work_email del usuario si no es nulo. De lo contrario, muestra personal_email.

user_id

work_email

personal_email

COALESCE() de

work_email y

personal_email

1

angel@datacamp.com

null

angel@datacamp.com

2

null

bruce@gmail.com

bruce@gmail.com

3

cath@datacamp.com

cath@gmail.com

cath@datacamp.com

COALESCE() syntax

COALESCE(value_1, value_2, ...., value_n)

La función COALESCE() toma al menos un valor (value_1). Devolverá el primer valor de la lista que no sea nulo. 

Por ejemplo, primero comprobará si value_1 es nulo. Si no, devuelve value_1. En caso contrario, comprueba si value_2 es nulo. El proceso continúa hasta completar la lista. 

COALESCE() ejemplos

Ejemplo 1: COALESCE() una columna con una constante

Considere la tabla countries con una lista de países y sus días nacionales. Algunos días nacionales están vacíos. Para las filas con días nacionales vacíos, podemos rellenarla con el valor 'Unknown'

La consulta y el resultado son los siguientes. 

SELECT
   country_id,
   name, 
   national_day,
   COALESCE(national_day, 'Unknown') AS national_day_coalesced
FROM countries
ORDER BY country_id

country_id

name

national_day

national_day_coalesced

1

Aruba

null

Desconocido

2

Afghanistan

1919-08-19T00:00:00.000Z

1919-08-19

3

Angola

1975-11-11T00:00:00.000Z

1975-11-11

4

Anguilla

1967-05-30T00:00:00.000Z

1967-05-30

Observe cómo el valor null de national_day se sustituye por una constante Unknown

Ejemplo 2: COALESCE() dos columnas

Tenemos una tabla llamada products. Contiene el nombre del producto y su descripción. Algunas descripciones son demasiado largas (más de 60 caracteres). En ese caso, sustituimos la descripción por el nombre del producto.

La consulta y el resultado son los siguientes.

SELECT DISTINCT
   product_name,
   description,
   COALESCE(
      CASE WHEN 
         LENGTH(description) >= 60 
         THEN NULL 
         ELSE description 
         END, 
      product_name) product_name_or_description
FROM products
product_name

description

product_name_or_description

G.Skill Ripjaws Serie V

"Speed:DDR4-3200,Type:288-pin DIMM,CAS:14Module:4x16GBSize:64GB"

G.Skill Ripjaws Serie V

G.Skill Ripjaws Serie V

"Speed:DDR4-3200,Type:288-pin DIMM,CAS:15Module:4x16GBSize:64GB"

G.Skill Ripjaws Serie V

Asus X99-E-10G WS

"CPU:LGA2011-3,Factor de forma:SSI CEB,Ranuras RAM:8,RAM máx:128GB"

"CPU:LGA2011-3,Factor de forma:SSI CEB,Ranuras RAM:8,RAM máx:128GB"

Supermicro X9SRH-7TF

"CPU:LGA2011,Factor de forma:ATX,Ranuras RAM:8,RAM máx:64GB"

"CPU:LGA2011,Factor de forma:ATX,Ranuras RAM:8,RAM máx:64GB"

Observe cómo la columna product_name_or_description muestra el product_name si el description es largo. En caso contrario, muestra la dirección description.

 Ejemplo 3: COALESCE() tres columnas o más

Podemos llevar el ejemplo 2 un paso más allá. Supongamos que actualmente existen dos requisitos.

  • Si la longitud de description es inferior a 60, visualice description.
  • En caso contrario, comprueba si la longitud de product_name es inferior a 20. Si es así, mostramos el product_name
  • En caso contrario, muestra product
SELECT DISTINCT
   product_name,
   description,
   COALESCE(
      CASE 
         WHEN LENGTH(description) > 50
         THEN NULL
         ELSE description
      END,
   CASE 
      WHEN LENGTH(product_name) > 14
      THEN NULL
      ELSE product_name
   END,
'product') AS product_name_or_description
FROM products
ORDER BY product_name

product_name

description

product_name_or_description

ADATA ASU800SS-128GT-C

Serie:Ultimate SU800,Tipo:SSD,Capacidad:128GB,Caché:N/A

producto

ADATA ASU800SS-512GT-C

Serie:Ultimate SU800,Tipo:SSD,Capacidad:512GB,Caché:N/A

producto

AMD 100-5056062

Chipset:Vega Frontier Edition Liquid,Memory:16GBCore Clock:1.5GHz

producto

AMD 100-505989

Chipset:FirePro W9100,Memory:32GBCore Clock:930MHz

Chipset:FirePro W9100,Memory:32GBCore Clock:930MHz

Observe cómo la columna product_name_or_description muestra el product_name o el description en función de las longitudes de los product_name o description.

Requisitos técnicos

COALESCE() funciona en SQL Server (a partir de 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse, BigQuery y Amazon RedShift.

Ver también

Más información sobre SQL

Temas

Cursos populares de SQL

Certificación disponible

Course

Introducción a SQL

2 hr
630.4K
Aprende a crear y consultar bases de datos relacionales utilizando SQL en sólo dos horas.
See DetailsRight Arrow
Start Course
Certificación disponible

Course

SQL intermedio

4 hr
201.1K
Acompañado en cada paso con consultas prácticas, este curso te enseña todo lo que necesitas saber para analizar datos utilizando tu propio código SQL ¡hoy mismo!
Ver másRight Arrow
Relacionado

blog

20 preguntas principales de la entrevista sobre SQL Joins

Prepara tu entrevista SQL con esta lista de las preguntas más comunes sobre SQL Joins
Javier Canales Luna's photo

Javier Canales Luna

15 min

blog

Las 8 principales competencias de los analistas de negocio para 2024

Explore las principales competencias técnicas y sociales de los analistas de negocio necesarias para tener éxito y la mejor forma de mostrarlas en su cartera y en su currículum.
Joleen Bothma's photo

Joleen Bothma

11 min

blog

Las 10 principales conferencias sobre análisis de datos para 2024

Descubra las conferencias y eventos sobre analítica más populares programados para 2024.
Javier Canales Luna's photo

Javier Canales Luna

7 min

blog

Las 31 mejores preguntas y respuestas para entrevistas a analistas de negocio de todos los niveles

Explore las preguntas habituales en las entrevistas a analistas de negocio y sus respuestas para todos los niveles de experiencia.
Austin Chia's photo

Austin Chia

18 min

blog

5 formas únicas de utilizar la IA en el análisis de datos

El análisis de datos con IA está en auge entre los profesionales de los datos. Conozca en esta guía cinco formas únicas de aprovechar el poder de la IA para el análisis de datos.
Austin Chia's photo

Austin Chia

blog

Las 6 mejores certificaciones de analista de negocio: Su camino hacia la certificación

Explore las principales certificaciones de analista de negocio para mejorar su carrera. Infórmese sobre las ventajas, consejos de preparación y cómo puede ayudarle DataCamp.
Matt Crabtree's photo

Matt Crabtree

15 min

See MoreSee More