SQL Server:向列添加字符

时间:2017-04-03 14:39:43

标签: sql sql-server

我遇到了获取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

感谢您更新我的代码

2 个答案:

答案 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)