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.
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.