将Zeros添加到SQL中的产品编号

时间:2014-12-08 16:14:34

标签: sql sql-server tsql stored-procedures

我有两张带有产品编号的表格。它们都限制为12个字符(varchar(12))。其中一个(产品A)有这样的数字结构:

产品编号:

2345
568
89

产品B具有相同的确切数字,但用零填充缺少的12个字符。它是这样的:

产品编号:

000000002345
000000000568
000000000089

我只想修改产品A表,在序列的开头添加零。我对REPLACE()函数有一个想法,但是为了添加零,我可能需要另一个函数。感谢阅读和抱歉的时间。

3 个答案:

答案 0 :(得分:2)

试试这个,你可以使用这个陈述

RIGHT('000000000000'+ISNULL(ProductNo,''),12)

答案 1 :(得分:1)

这应该这样做:

UPDATE tblA
SET ProductNo = REPLICATE('0', 12 - LEN(ProductNo)) + ProductNo

答案 2 :(得分:0)

  

我只想修改产品A表,在序列的开头添加零。

对你来说很大问题:你是否绝对确定要将这些值存储在具有前导零的表中,或者只是能够根据需要以前导零显示它?

我问的原因是因为varchar(12)意味着内存中有13个字节,其中int只需要4个,如果此列参与其他表的索引和外键关系,这将产生很大的不同。