SQL Server - 如果为NULL,则将字段设置为一个文本值,否则添加不同的文本值

时间:2017-09-05 19:23:26

标签: sql sql-server null sql-update

我正在使用以下查询将文本附加到逗号分隔值的可变长度文本字段的末尾:

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)

我发现许多CatCustom字段都是NULL,因此我最终会在这些字段中使用',LRR01' - 不可取的前导逗号和空格。那么如何将此查询增强为

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

1 个答案:

答案 0 :(得分:2)

concat_ws正是您所需要的:

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)