Ga naar hoofdinhoud

COALESCE() gebruiken in SQL (met voorbeelden)

Leer hoe je de SQL-functie COALESCE() gebruikt om null-waarden af te handelen, kolommen te combineren en je data op te schonen met praktijkvoorbeelden en tips.
Bijgewerkt 1 jun 2026  · 5 min lezen

Bij het werken met echte data zijn ontbrekende waarden bijna onvermijdelijk. Of je nu datasets opschoont of kolommen samenvoegt, SQL biedt een eenvoudige maar krachtige oplossing: de functie COALESCE(). In deze tutorial zie je hoe COALESCE() werkt, wanneer je het gebruikt en hoe je het toepast met praktische voorbeelden—allemaal in slechts een paar regels SQL.

Wat is COALESCE() in SQL?

De functie COALESCE() in SQL geeft de eerste niet-null waarde terug uit een lijst met expressies. Als alle waarden null zijn, retourneert het null. Het wordt vaak gebruikt om ontbrekende waarden af te handelen of meerdere kolommen te combineren tot één fallback-uitvoer.

Wanneer moet je COALESCE() gebruiken?

Deze functie is handig wanneer je waarden uit meerdere kolommen tot één wilt samenvoegen.

Stel dat een tabel met de naam users de waarden bevat voor de work_email en personal_email van gebruikers.

Met de functie COALESCE() kunnen we een kolom maken met de naam email, die de work_email van de gebruiker toont als die niet null is. Anders toont hij personal_email.

user_id

work_email

personal_email

COALESCE() van

work_email en

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

Syntax van COALESCE()

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

De functie COALESCE() neemt minimaal één waarde (value_1). Hij retourneert de eerste niet-null waarde in de lijst, van links naar rechts.

Zo wordt eerst gecontroleerd of value_1 null is. Zo niet, dan retourneert hij value_1. Anders wordt gecontroleerd of value_2 null is. Dit proces gaat door totdat de lijst is doorlopen. 

COALESCE() kan worden gebruikt met kolommen, expressies of constanten.

Praktische voorbeelden van COALESCE()

Voer de code uit deze tutorial online uit en pas 'm aan.

Code uitvoeren

Voorbeeld 1: null vervangen door een constante

Neem de tabel countries met een lijst van landen en hun nationale dagen. Sommige waarden voor nationale dag zijn null. COALESCE() vult ontbrekende waarden in national_day op met de constante string 'Unknown'.

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

De resultaten zijn als volgt:

country_id

name

national_day

national_day_coalesced

1

Aruba

null

Unknown

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

Let op hoe de waarde null in national_day wordt vervangen door de constante Unknown

Voorbeeld 2: kiezen tussen twee kolommen

We hebben een tabel met de naam products. Deze bevat de productnaam en de beschrijving. Sommige beschrijvingen zijn te lang (meer dan 60 tekens). In dat geval vervangen we de beschrijving door de productnaam.

De volgende query gebruikt CASE om lange beschrijvingen om te zetten naar NULL, en gebruikt vervolgens COALESCE() om terug te vallen op de productnaam.

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

De resultaten zijn als volgt:

product_name

description

product_name_or_description

G.Skill Ripjaws V Series

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

G.Skill Ripjaws V Series

G.Skill Ripjaws V Series

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

G.Skill Ripjaws V Series

Asus X99-E-10G WS

"CPU:LGA2011-3,Form Factor:SSI CEB,RAM Slots:8,Max RAM:128GB"

"CPU:LGA2011-3,Form Factor:SSI CEB,RAM Slots:8,Max RAM:128GB"

Supermicro X9SRH-7TF

"CPU:LGA2011,Form Factor:ATX,RAM Slots:8,Max RAM:64GB"

"CPU:LGA2011,Form Factor:ATX,RAM Slots:8,Max RAM:64GB"

Let op hoe de kolom product_name_or_description de product_name toont als de description lang is. Anders toont hij de description.

Voorbeeld 3: fallback-logica met meerdere kolommen

We kunnen voorbeeld 2 nog een stap verder nemen. Ga uit van twee vereisten:

  • Als de lengte van de description minder dan 60 is, toon dan de description.
  • Controleer anders of de lengte van de product_name minder dan 20 is. Zo ja, toon dan de product_name.
  • Toon anders 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

De resultaten zijn als volgt:

product_name

description

product_name_or_description

ADATA ASU800SS-128GT-C

Series:Ultimate SU800,Type:SSD,Capacity:128GB,Cache:N/A

product

ADATA ASU800SS-512GT-C

Series:Ultimate SU800,Type:SSD,Capacity:512GB,Cache:N/A

product

AMD 100-5056062

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

product

AMD 100-505989

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

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

Let op hoe de kolom product_name_or_description afhankelijk van de lengtes van product_name of description óf de product_name óf de description toont.

Ondersteunde SQL-engines

COALESCE() werkt in SQL Server (vanaf 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse, BigQuery en Amazon RedShift.

Gerelateerde SQL-functies

Tot slot

De functie COALESCE() is een veelzijdige tool om null-waarden af te handelen en je SQL-queries te vereenvoudigen. Of je nu ontbrekende data vervangt door standaardwaarden of meerdere kolommen samenvoegt tot één, COALESCE() houdt je logica overzichtelijk en leesbaar.

Klaar om je SQL-skills te verdiepen? Bekijk deze toegankelijke en carrièreversterkende cursussen op DataCamp:

FAQs

Wat gebeurt er als alle waarden in COALESCE() NULL zijn?

Als elk argument dat aan de functie COALESCE() wordt doorgegeven NULL is, retourneert de functie NULL.

Hoe verschilt COALESCE() van ISNULL() of IFNULL()?

  • ISNULL() (SQL Server) en IFNULL() (MySQL, SQLite) accepteren slechts twee argumenten.
  • COALESCE() kan meerdere argumenten accepteren en is standaarder over SQL-dialecten heen.

  • COALESCE() maakt deel uit van de ANSI SQL-standaard, terwijl ISNULL() en IFNULL() databasespecifiek zijn.

Kan ik COALESCE() gebruiken met expressies of functies?

Ja, je kunt kolomnamen, literalen, functies of expressies gebruiken binnen COALESCE().

COALESCE(LOWER(name), 'unknown')

Zijn er prestatiekosten verbonden aan het gebruik van COALESCE()?

In het algemeen niet—COALESCE() is efficiënt. Maar als je het gebruikt met complexe expressies of binnen grote queries, kan de database meer expressies evalueren dan nodig, afhankelijk van hoe het is geschreven.

Werkt COALESCE() met verschillende datatypen?

Ja, maar alle argumenten moeten impliciet converteerbaar zijn naar een gemeenschappelijk datatype. Anders kan, afhankelijk van je SQL-engine, een typeconversiefout worden geretourneerd.

Kan ik COALESCE()-functies nesten?

Ja. Je kunt ze nesten, al is het zelden nodig omdat COALESCE() al meerdere argumenten afhandelt:

COALESCE(col1, COALESCE(col2, 'default'))

Dit is equivalent aan:

COALESCE(col1, col2, 'default')
Onderwerpen

Populaire SQL-cursussen

Cursus

Introductie tot SQL

2 Hr
1.6M
Leer in slechts twee uur hoe je relationele databases kunt maken en doorzoeken met SQL.
Bekijk detailsRight Arrow
Begin met de cursus
Meer zienRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer zienMeer zien