PL/SQL中如何通过单条查询删除表某列所有值的首字符并更新表
解决方案
以下不同数据库的方案均支持单条查询完成更新操作,可根据你使用的数据库类型选择:
- 通用兼容方案(适配MySQL、PostgreSQL、SQLite等绝大多数数据库)
使用SUBSTRING函数从第2位开始截取字符串即可,如果你只需要处理首字符为L的行,建议增加WHERE条件避免误改其他正常数据:-- 全表更新所有ID列的首字符 UPDATE 你的表名 SET ID = SUBSTRING(ID, 2); -- 仅更新首字符为L的行,更安全 UPDATE 你的表名 SET ID = SUBSTRING(ID, 2) WHERE ID LIKE 'L%'; - Oracle数据库
语法和通用方案基本一致,使用SUBSTR函数即可:UPDATE 你的表名 SET ID = SUBSTR(ID, 2) WHERE ID LIKE 'L%'; - SQL Server数据库
也可以用RIGHT配合长度计算实现相同效果:UPDATE 你的表名 SET ID = RIGHT(ID, LEN(ID) - 1) WHERE ID LIKE 'L%';
操作提示:执行更新前建议先运行SELECT语句验证截取结果是否符合预期,避免数据错误,验证语句参考:
SELECT ID, SUBSTRING(ID, 2) AS 处理后ID FROM 你的表名;
内容的提问来源于stack exchange,提问作者Piotr94
相关产品推荐
相关产品推荐

