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

如何在SQL Server中为字母数字混合的ID添加空格

SQL Server实现ID列字母与数字间添加空格的方法

针对你给出的ID格式(前缀字母+4位数字+后缀字母),可以通过SQL Server的字符串函数组合实现格式转换,具体如下:

查询转换结果(不修改原数据)

执行以下SQL语句可直接查看转换后的ID:

SELECT 
    CONCAT(
        -- 提取前缀字母部分
        LEFT(ID, PATINDEX('%[0-9]%', ID) - 1),
        ' ',
        -- 提取中间数字部分
        SUBSTRING(
            ID,
            PATINDEX('%[0-9]%', ID),
            (LEN(ID) - PATINDEX('%[0-9]%', REVERSE(ID)) + 1) - PATINDEX('%[0-9]%', ID) + 1
        ),
        ' ',
        -- 提取后缀字母部分
        RIGHT(ID, LEN(ID) - (LEN(ID) - PATINDEX('%[0-9]%', REVERSE(ID)) + 1))
    ) AS FormattedID
FROM YourTable;

直接更新原表数据

如果需要永久修改表中的ID值,执行以下UPDATE语句:

UPDATE YourTable
SET ID = CONCAT(
        LEFT(ID, PATINDEX('%[0-9]%', ID) - 1),
        ' ',
        SUBSTRING(
            ID,
            PATINDEX('%[0-9]%', ID),
            (LEN(ID) - PATINDEX('%[0-9]%', REVERSE(ID)) + 1) - PATINDEX('%[0-9]%', ID) + 1
        ),
        ' ',
        RIGHT(ID, LEN(ID) - (LEN(ID) - PATINDEX('%[0-9]%', REVERSE(ID)) + 1))
    );

关键函数说明

  • PATINDEX('%[0-9]%', ID):定位ID中第一个数字的起始位置
  • PATINDEX('%[0-9]%', REVERSE(ID)):通过反转ID定位最后一个数字的位置,推算出原ID中数字部分的结束索引
  • LEFT/SUBSTRING/RIGHT:分别提取前缀字母、中间数字、后缀字母片段,最终用CONCAT拼接并插入空格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 07:12:12