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

如何在SQL中按规则替换ID列第1、2、4位数字为指定字母

实现思路

直接对ID字符串按位置截取拼接即可,逻辑简单性能也优于正则替换,规则拆解后对应逻辑:

  • 固定拼接开头的NX(对应替换第1、2位)
  • 拼接原ID的第3位字符(保留原位置内容)
  • 固定拼接字符D(对应替换第4位)
  • 拼接原ID从第5位开始的所有剩余内容

如果你的ID列是数值类型,需要先转成字符串类型再处理,避免长度计算出错。


不同数据库实现代码

MySQL 写法

SELECT 
    `Group`,
    CONCAT('NX', SUBSTRING(ID,3,1), 'D', SUBSTRING(ID,5)) AS ID
FROM 你的表名;

ID为数值类型时调整为:

SELECT 
    `Group`,
    CONCAT('NX', SUBSTRING(CAST(ID AS CHAR),3,1), 'D', SUBSTRING(CAST(ID AS CHAR),5)) AS ID
FROM 你的表名;

PostgreSQL 写法

SELECT 
    "Group",
    'NX' || SUBSTRING(ID::text, 3, 1) || 'D' || SUBSTRING(ID::text, 5) AS ID
FROM 你的表名;

SQL Server 写法

SELECT 
    [Group],
    'NX' + SUBSTRING(CAST(ID AS VARCHAR(100)),3,1) + 'D' + SUBSTRING(CAST(ID AS VARCHAR(100)),5, LEN(ID)) AS ID
FROM 你的表名;

注意:Group是SQL保留关键字,查询时需要用对应数据库的转义符包裹(MySQL用反引号、PostgreSQL用双引号、SQL Server用方括号),避免语法报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:15:03