SQLite中如何将Status列非'Absent'值替换为'Present'
修改SQLite中NewDB表的Status列值
你需要用UPDATE语句来修改表中的数据(SELECT仅用于查询,不会改变数据)。针对你的需求,这里提供两种实用写法:
方法一:通过WHERE条件精准更新
这种写法最直观,只修改符合条件的行:
UPDATE NewDB SET Status = 'Present' WHERE Status != 'Absent';
- 说明:
UPDATE NewDB指定要操作的表;SET Status = 'Present'定义要修改的列和目标值;WHERE Status != 'Absent'限定仅处理Status不等于'Absent'的行。
方法二:用CASE覆盖所有场景(含NULL值)
如果Status列存在NULL值(未填写的空值),上面的WHERE条件不会处理NULL(因为NULL与任何值比较结果都是未知),这时可以用CASE语句覆盖所有情况:
UPDATE NewDB SET Status = CASE WHEN Status = 'Absent' THEN 'Absent' -- 保持'Absent'值不变 ELSE 'Present' -- 其他所有情况(包括NULL)改为'Present' END;
- 说明:CASE语句会逐行判断Status的值,匹配WHEN条件则返回对应值,否则执行ELSE逻辑,确保所有非'Absent'的情况都被修改。
新手注意事项
- 执行修改前,建议先查询验证目标行:
SELECT * FROM NewDB WHERE Status != 'Absent'; -- 查看哪些行会被修改 - 怕误操作的话,可以用事务来保障:
BEGIN TRANSACTION; UPDATE NewDB SET Status = 'Present' WHERE Status != 'Absent'; -- 确认修改结果无误后提交 COMMIT; -- 如果出错,执行ROLLBACK撤销所有修改 -- ROLLBACK;
内容的提问来源于stack exchange,提问作者user19585404
相关产品推荐
相关产品推荐

