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

SQL:如何将字符串中分隔符'-'左侧内容替换为空格

解决SQL中替换分隔符左侧内容为空格的问题

你原本使用REPLACE的思路存在问题,因为REPLACE只能替换固定字符串,而这里需要根据分隔符的位置动态处理左侧内容。以下是针对不同数据库的可行方案:

SQL Server 版本

UPDATE MyTable
SET ColumnOne = 
    CASE 
        -- 检查是否存在目标分隔符' - '
        WHEN CHARINDEX(' - ', ColumnOne) > 0 THEN 
            -- 生成与分隔符及左侧内容等长的空格,拼接分隔符右侧内容
            REPLICATE(' ', CHARINDEX(' - ', ColumnOne) + 2) + SUBSTRING(ColumnOne, CHARINDEX(' - ', ColumnOne) + 3, LEN(ColumnOne))
        ELSE 
            -- 无分隔符的行保持原内容
            ColumnOne
    END

MySQL 版本

UPDATE MyTable
SET ColumnOne = 
    CASE 
        WHEN LOCATE(' - ', ColumnOne) > 0 THEN 
            REPEAT(' ', LOCATE(' - ', ColumnOne) + 2) + SUBSTRING(ColumnOne, LOCATE(' - ', ColumnOne) + 3)
        ELSE 
            ColumnOne
    END

逻辑说明

  1. 用CHARINDEX(SQL Server)或LOCATE(MySQL)定位分隔符' - '的起始位置
  2. 若存在分隔符,用REPLICATE/REPEAT生成与「左侧内容+分隔符」等长的空格
  3. 截取分隔符右侧的内容,拼接到空格后方
  4. 没有分隔符的行直接保留原内容

处理后完全匹配你想要的效果:无分隔符的行不变,带分隔符的行左侧内容和分隔符被替换为等长空格,仅保留右侧内容;若分隔符后无内容,则整行变为对应长度的空格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:10:29