如何使用SQL删除指定列中每一行数据的前两个字符?
SQL移除字段每行前两个字符的实现方案
针对你需要移除Ticket Number列每行前两个字符的需求,核心实现思路是截取字符串从第3位开始到末尾的子串(SQL中字符串计数默认从1开始,第1、2位即为需要移除的前两个字符)。
你的示例数据中部分值存在尾部多余空格,建议先通过TRIM函数清理前后空格再做截取,避免结果异常。
查询时返回处理后结果(不修改原表)
通用写法(适配MySQL、PostgreSQL、MariaDB、SQLite等多数数据库)
-- 先清理字段前后空格再截取,适配示例中的带空格数据 SELECT SUBSTRING(TRIM(`Ticket Number`), 3) AS processed_ticket FROM 你的表名; -- 确认字段无前后多余空格时可直接截取 SELECT SUBSTRING(`Ticket Number`, 3) AS processed_ticket FROM 你的表名;
特定数据库适配写法
- Oracle:使用
SUBSTR函数,大小写敏感字段用双引号包裹SELECT SUBSTR(TRIM("Ticket Number"), 3) AS processed_ticket FROM 你的表名; - SQL Server:
SUBSTRING函数需指定截取长度,搭配LEN函数获取字段总长度即可SELECT SUBSTRING(TRIM([Ticket Number]), 3, LEN(TRIM([Ticket Number]))) AS processed_ticket FROM 你的表名;
永久更新原表数据
如果需要把字段值永久修改为移除前两位后的结果,使用UPDATE语句即可,执行前务必先通过上面的SELECT语句验证截取结果正确,最好备份数据后再操作:
-- 通用更新写法,适配多数数据库 UPDATE 你的表名 SET `Ticket Number` = SUBSTRING(TRIM(`Ticket Number`), 3);
提示:如果数据库开启了自动提交,建议执行UPDATE前手动开启事务,验证结果无误后再提交,避免数据误改无法回滚。
内容的提问来源于stack exchange,提问作者user19299338
相关产品推荐
相关产品推荐

