我正在执行一条从临时表t到主表ts的MERGE语句,匹配一个ID字段。它包含以下内容:
WHEN MATCHED THEN UPDATE
SET ts.username = t.username, ts.password = t.password, ts.title = t.title, ts.firstname = t.firstname, ts.surname = t.surname, ts.email = t.email如果在临时表ts中用户名和密码为空,我就不想更新主表username和password。我该怎么做呢?
编辑:看起来像是一条CASE语句,或者使用COALESCE(NULLIF(t.username, ''), ts.username)就可以了。哪一个是最好的?
发布于 2012-11-07 18:55:58
在处理空格(即空字符串)时,然后使用case语句
WHEN MATCHED THEN UPDATE
SET case when t.username = '' then ts.username else t.username end如果您正在处理null,则使用isnull
WHEN MATCHED THEN UPDATE
SET ts.username = isnull(t.username, ts.username),如果它可以为空或null,则可以在case语句中同时处理这两种情况
WHEN MATCHED THEN UPDATE
SET case when t.username = '' or t.username is null then ts.username else t.username endhttps://stackoverflow.com/questions/13268170
复制相似问题