You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Developer中如何批量删除某列所有行字符串末尾3位字符

Oracle SQL Developer 移除字符串末尾3位字符实现方案

SQL Developer 主要适配Oracle数据库,直接使用内置字符串函数即可完成需求,分两种常见使用场景:

  • 仅查询时返回裁剪后的结果,不修改原表数据
    核心使用SUBSTR截取字符串,搭配LENGTH获取字符串总长度,截取从第一位开始、长度为「总长度-3」的片段即可:
    SELECT
      -- 可按需添加其他需要查询的字段
      SUBSTR(Colum2, 1, LENGTH(Colum2) - 3) AS trimmed_Colum2
    FROM 你实际的业务表名;
    
    针对你给出的示例值Karim_bk,该语句计算总长度为8,截取前5位,正好返回目标结果Karim。
    如果存在字段长度小于3的异常行,上述写法会返回空值,需要保留原值的话可以加判断逻辑:
    SELECT
      CASE WHEN LENGTH(Colum2) >= 3 THEN SUBSTR(Colum2, 1, LENGTH(Colum2) - 3)
           ELSE Colum2
      END AS trimmed_Colum2
    FROM 你实际的业务表名;
    
  • 需要永久修改表中Colum2字段的原始值
    先执行查询语句校验裁剪结果,确认无误后再执行更新,避免误改数据:
    -- 第一步:预校验结果
    SELECT Colum2 AS original_value, SUBSTR(Colum2, 1, LENGTH(Colum2) - 3) AS expect_value
    FROM 你实际的业务表名;
    
    -- 第二步:校验通过后执行更新
    UPDATE 你实际的业务表名
    SET Colum2 = SUBSTR(Colum2, 1, LENGTH(Colum2) - 3);
    
    -- 第三步:确认更新结果符合预期后提交,结果不对可执行ROLLBACK回滚
    COMMIT;
    

如果你用SQL Developer连接的是其他类型数据库,逻辑通用,仅需调整对应函数名即可:比如MySQL可直接复用上述Oracle写法;SQL Server需要将SUBSTR替换为SUBSTRING、LENGTH替换为LEN。

内容的提问来源于stack exchange,提问作者Karim Solieman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 04:42:35