You need to enable JavaScript to run this app. 如何使用SQL Server将列或字符串中的数值替换为空白仅保留下划线
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SQL Server将列或字符串中的数值替换为空白仅保留下划线

SQL Server 移除字符串中所有数字的实现方案

方案1:SQL Server 2017及以上版本(推荐)

使用TRANSLATE函数批量处理所有数字,代码简洁易维护:

-- 替换your_column为实际列名、your_table为实际表名
SELECT REPLACE(
         TRANSLATE(your_column, '0123456789', REPLICATE('~', 10)),
       '~', '') AS cleaned_column
FROM your_table;

实现逻辑:

  • REPLICATE('~', 10) 生成10个连续的~符号,和0-9的10个数字一一对应
  • TRANSLATE 遍历字符串,将所有0-9的数字全部替换为~
  • 外层REPLACE把所有~统一替换为空,最终仅保留下划线等非数字内容

方案2:兼容全版本SQL Server

如果数据库版本低于2017,不支持TRANSLATE函数,可以嵌套10次REPLACE逐个移除数字:

SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
         REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
           your_column,
         '0',''),'1',''),'2',''),'3',''),'4',''),
       '5',''),'6',''),'7',''),'8',''),'9','') AS cleaned_column
FROM your_table;

效果验证

假设原字段值为2024_order_987_detail,执行上述查询后返回结果为_order__detail,完全符合清除数字、仅保留下划线及其他非数字内容的需求。如果你的需求是仅保留下划线、删除所有其他类型字符,直接在上述查询结果外层再加一层非下划线字符的替换逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 21:15:08