我有两张带有产品编号的表格。它们都限制为12个字符(varchar(12)
)。其中一个(产品A)有这样的数字结构:
产品编号:
2345
568
89
产品B具有相同的确切数字,但用零填充缺少的12个字符。它是这样的:
产品编号:
000000002345
000000000568
000000000089
我只想修改产品A表,在序列的开头添加零。我对REPLACE()
函数有一个想法,但是为了添加零,我可能需要另一个函数。感谢阅读和抱歉的时间。
答案 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个,如果此列参与其他表的索引和外键关系,这将产生很大的不同。