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

如何在SQL Server中移除列末尾带括号的数字及相关字符?

解决方法

你可以用SQL Server的字符串函数处理这个需求,下面是两种实用方案:

方案1:PATINDEX + LEFT(兼容老版本SQL Server)

这种方法适配SQL Server 2008及以上版本,通过匹配目标模式截取有效内容:

SELECT 
    原列名 AS OriginalValue,
    CASE 
        WHEN PATINDEX('% ([0-9])%', 原列名) > 0 
            THEN LEFT(原列名, PATINDEX('% ([0-9])%', 原列名) - 1)
        ELSE 原列名
    END AS 清理后的值
FROM 你的表名
  • PATINDEX('% ([0-9])%', 原列名)会定位到字符串中第一个" (数字)"的起始位置(注意前面的空格)
  • 如果匹配到目标模式,就截取开头到该位置之前的内容;未匹配到则保留原内容

方案2:REGEXP_REPLACE(SQL Server 2016+)

如果你的SQL Server版本是2016及以上,用正则替换会更简洁:

SELECT 
    原列名 AS OriginalValue,
    REGEXP_REPLACE(原列名, ' \([0-9]+\)$', '') AS 清理后的值
FROM 你的表名
  • 正则表达式' \([0-9]+\)$'专门匹配字符串末尾的" (数字)"格式内容
  • 直接把匹配到的部分替换为空,未符合模式的内容保持不变

测试效果

用你提供的示例数据测试,结果如下:

原始值清理后的值
SAND FRACING 100 MESH (1441317)SAND FRACING 100 MESH
SANDFRAC4070 (1441316)SANDFRAC4070
SANDFRAC3050MESSANDFRAC3050MES
SAND FRACING 30 50 MESHSAND FRACING 30 50 MESH

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:48:24