SQLSERVER 只更新字段为空的字段
时间: 2025-02-07 07:51:30 浏览: 7
SQL Server 中仅更新字段值为空的记录
为了实现仅当特定字段为空时才更新这些字段,在 UPDATE
语句中的 SET
子句可以利用条件逻辑来完成此操作。具体来说,可以通过使用 CASE WHEN ... THEN ... ELSE ... END
结构来控制何时以及如何设置新值。
对于单个字段的情况,语法如下所示:
UPDATE 表名
SET 字段1 = CASE
WHEN 字段1 IS NULL THEN '新的值'
ELSE 字段1
END,
字段2 = CASE
WHEN 字段2 IS NULL THEN '另一个新值'
ELSE 字段2
END
WHERE 条件表达式;
如果目标是在整个表内针对所有符合条件(即原先是NULL)的行执行这一操作,则可以在 WHERE
后面指定相应的过滤条件[^1]。
下面是一个具体的例子,假设有一个名为 Employees
的表格,并希望只为那些职位 (JobTitle
) 和部门编号(DepartmentID
) 是空的数据填充默认值:
UPDATE Employees
SET JobTitle = CASE
WHEN JobTitle IS NULL THEN '未分配'
ELSE JobTitle
END,
DepartmentID = CASE
WHEN DepartmentID IS NULL THEN 99 -- 假设99代表未知或临时部门
ELSE DepartmentID
END
WHERE JobTitle IS NULL OR DepartmentID IS NULL;
这段代码会遍历 Employees
表格并检查每一行;只有在发现某一行里有任一列是 NULL
时才会对其进行修改,其他情况下保持不变。
相关推荐














