我遇到了获取SQL代码的问题:在列中我有一个值为5或6个字符的值,我需要输入字符:0和列中的值必须有7个字符。
Column
------
123456
123456
12345
12345
123456
这是我的代码不起作用(我正在使用SQL Server):
Update table
set column = CONCAT( '0', ( column ) )
where LEN( + RTRIM ( column ) ) < 7
Update table
set column = CONCAT( '0', RTRIM ( column ) )
where LEN( RTRIM( column ) ) < 7
UPDATE table
SET column = '0' + column
WHERE LEN(column) = 7
我的结果:在我尝试之后,我在值之前得到0
但仍然缺少某个地方。
Column
-------
0123456
0123456
012345
012345
0123456
我需要:
Column
-------
0123456
0123456
0012345
0012345
0123456
感谢您更新我的代码
答案 0 :(得分:4)
您想要填充值。这是一种方法:
Update table
set column = RIGHT(CONCAT( REPLICATE('0', 7), ( column ) ), 7)
where LEN( + RTRIM ( column ) ) < 7;
答案 1 :(得分:0)
从您的示例中,我不确定同一字段中是否存在多个值。但是,假设给定行的值必须包含带有0填充的单个7位数字,请参阅下面的示例。请记住,存储填充值的列必须是字符串,例如VARCHAR。
UPDATE table SET column = RIGHT('0000000' + column, 7)
这将更新任何要填充的值,最多7个零。
如果您的列当前存储为Integer而不是String,请使用以下命令:
UPDATE table SET TextColumn = RIGHT('0000000' + CONVERT(VARCHAR, IntColumn), 7)