我有一张桌子说 T1(COL1,COL2,COL3,COL4)
现在说第2列有varchar值。 要求:它应该总是有11位数。
有些值的长度范围为5到11位。
根据col2表中已经存在的值的长度,我需要在数字前加零(0)。
例如,如果值为12345,我需要将其更新为00000012345,依此类推。
请建议。如果可能的话,让我知道有多个案例(基于长度)的表的多行的更新标记的光标。
答案 0 :(得分:0)
试试这个:
update T1
set col2 = RIGHT('000000'+col2,11)
答案 1 :(得分:0)
SELECT * RIGHT(REPLICATE(' 0',11) + CAST(Col2 AS VARCHAR(11)),11)Col2 来自T1
希望这可能有所帮助。
答案 2 :(得分:0)
像
这样的东西Update SomeTable set SomeColumn = replicate('0',11 - data_length(SomeColumn)) + SomeColumn
Where blah blah blah
应该这样做
根本不需要光标。