Coalesce

COALESCE kan hetzelfde als IFNULL.

 

SELECT last_name, COALESCE(commission_pct, 'geen') AS commissie

FROM employees;

 

clip0120

 

Maar COALESCE kan nog net iets meer. Bekijk onderstaand resultaat. Bij COALESCE geef je een rijtje op dat gecontroleerd moet worden. Het gaat er om wat er in de laatste kolom getoond moet worden. Als de eerste kolom (bonus) inhoud heeft, toon je die inhoud in de laatste kolom. Als de eerste kolom NULL is, kijk je naar de tweede kolom (department_id). Als die inhoud heeft, toon je die inhoud in de laatste kolom. Als zowel de eerste (bonus) als de tweede kolom (department_id) NULL zijn, toon je de tekst 'geen'.

 

SELECT last_name, bonus, department_id, COALESCE(bonus, department_id, 'geen') AS comm

FROM employees;

 

clip0124

 

 

Je kunt een onbeperkt aantal kolommen gebruiken bij COALESCE. Nog een voorbeeld:

Als de kolom bonus gevuld is, wordt bonus getoond. Zie Zlotkey, Abel en Taylor.

Als bonus NULL is en commission_pct is gevuld, dan wordt commission_pct getoond. Zie Grant.

Als bonus en commission_pct NULL zijn, dan wordt het manager_id getoond. Zie alle overige personeelsleden behalve King.

Als bonus, commission_pct en manager_id NULL zijn, dan wordt de tekst 'geen' getoond. Zie King.

 

SELECT last_name, COALESCE(bonus, commission_pct, manager_id, 'geen') AS comm

FROM employees;

 

clip0125