SQL Server – définir le champ à une valeur de text si NULL, append une valeur de text différente sinon

J'utilise la requête suivante pour append du text à la fin d'un champ de text de longueur variable de valeurs séparées par des virgules:

UPDATE dbo.Sources SET CatCustom = RTRIM(CatCustom) + ', LRR01' WHERE SourceID IN (1,2,3,4,5,8,9,44,63,45,101,102,222,344) 

Ce que j'ai découvert est que beaucoup de champs CatCustom sont NULL et donc je finis par ', LRR01' à l'intérieur de ces champs – la virgule et l'espace de début n'est pas souhaitable. Alors, comment pourrais-je améliorer cette requête pour dire

 > If the CatCustom field is NULL, set it to 'LRR01', else SET CatCustom = RTRIM(CatCustom) + ', LRR01'? 

concat_ws est exactement ce dont vous avez besoin:

 UPDATE dbo.Sources SET CatCustom = CONCAT_WS(', ', RTRIM(CatCustom), 'LRR01') WHERE SourceID IN (1,2,3,4,5,8,9,44,63,45,101,102,222,344)