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

SQL Server中如何用另一列前N字符加序列号更新code列?

SQL Server 更新customers表code列的实现方案

需求是将customers表中code列更新为「customer列前3个字符 + 按顺序生成的3位带前导零序列号」的格式(如SMI001、SMI002),可以通过以下SQL实现:

实现代码

WITH CustomerSeq AS (
    SELECT 
        code,
        -- 取customer前3个字符转大写,拼接格式化后的3位序列号
        UPPER(LEFT(customer, 3)) + FORMAT(ROW_NUMBER() OVER (ORDER BY customer), '000') AS new_code
    FROM customers
)
UPDATE CustomerSeq
SET code = new_code;

代码说明

  • LEFT(customer, 3):提取customer列的前3个字符
  • UPPER():将提取的字符转为大写,匹配示例中的SMI格式(若不需要大写可直接去掉此函数)
  • ROW_NUMBER() OVER (ORDER BY customer):按customer列的顺序生成连续递增的序号,若需要按其他规则排序(如创建时间),替换ORDER BY后的字段即可
  • FORMAT(..., '000'):将序号格式化为3位数字,自动补前导零,比如1转为001、4转为004

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 20:12:09