Différences de comportement en présence de NULL entre CONCAT et CONCAT_WS

CONCAT_WS (with separator) ajoute un séparateur à la concaténation. Autrement dit, la formule suivante :

CONCAT('pommes', ' - ', 'bananes', ' - ', 'noix')
peut s'écrire plus simplement :

CONCAT_WS(' - ', 'pommes', 'bananes', 'noix')

Outre la gestion du séparateur de la part de CONCAT_WS, ces deux fonctions se comportent différemment en présence de NULL.

CONCAT retournera NULL si un des termes à concaténer est NULL, alors que CONCAT_WS l'ignorera.

CONCAT se conforme ainsi à la règle de propagation des NULL, tandis que CONCAT_WS a un comportement spécifique.