You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

SQL Server 2012:将ItemId更新为CatId与补零后ItemId的拼接值

Hey,刚好帮你解决这个SQL Server 2012的字段更新问题,根据你的需求,我整理了对应的解决方案:

解决方案:拼接CatId与补零后的ItemId更新字段

针对你需要将ItemId更新为CatId拼接补前导零的ItemId需求(比如CatId=1555、ItemId=2时,更新为155502;ItemId=12时更新为155512),这里分两种场景给出SQL语句,根据你的ItemId字段类型选择即可:

情况1:ItemId为整数(INT)类型

如果ItemId存储的是整数,需要先把两个字段转为字符串完成拼接,再转回整数类型:

UPDATE YourTableName
SET ItemId = CAST(
    CAST(CatId AS VARCHAR(4)) + RIGHT('0' + CAST(ItemId AS VARCHAR(2)), 2)
AS INT)

逻辑拆解:

  • RIGHT('0' + CAST(ItemId AS VARCHAR(2)), 2):将ItemId转为字符串后,前面补一个0,再取右侧2位,确保最终是两位格式——1位数字自动补前导零,2位数字保持原样
  • 将CatId转为4位字符串后,和处理后的ItemId字符串拼接,最后转回整数赋值给ItemId

情况2:ItemId为字符串(VARCHAR)类型

如果ItemId本身就是字符串类型,语句更简洁:

UPDATE YourTableName
SET ItemId = CAST(CatId AS VARCHAR(4)) + RIGHT('0' + ItemId, 2)

重要注意事项

  • 务必把语句中的YourTableName替换成你实际使用的表名
  • 强烈建议先执行SELECT语句验证结果,确认拼接后的数值符合预期后,再执行UPDATE操作,避免误更新数据:
SELECT 
    CatId,
    ItemId,
    CAST(CatId AS VARCHAR(4)) + RIGHT('0' + CAST(ItemId AS VARCHAR(2)), 2) AS NewItemId
FROM YourTableName

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

火山引擎 最新活动