Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:向列中添加字符_Sql_Sql Server - Fatal编程技术网

SQL Server:向列中添加字符

SQL Server:向列中添加字符,sql,sql-server,Sql,Sql Server,我在获取SQL代码时遇到问题:在一列中,我有一个值,在该值之前有5或6个字符,我需要输入字符:0,列中的值必须有7个字符 Column ------ 123456 123456 12345 12345 123456 这是我的代码,不起作用(我正在使用SQL Server): 我需要: Column ------- 0123456 0123456 0012345 0012345 0123456 感谢您更新我的代码如果您想保留该值。这里有一种方法: U

我在获取SQL代码时遇到问题:在一列中,我有一个值,在该值之前有5或6个字符,我需要输入字符:0,列中的值必须有7个字符

Column
------
123456           
123456
12345
12345
123456
这是我的代码,不起作用(我正在使用SQL Server):

我需要:

Column
-------
0123456           
0123456
0012345
0012345
0123456

感谢您更新我的代码

如果您想保留该值。这里有一种方法:

Update table
    set column = RIGHT(CONCAT( REPLICATE('0', 7),  ( column ) ), 7)
    where LEN( + RTRIM ( column ) )  < 7;
更新表
设置列=右(CONCAT(复制('0',7),(列)),7)
式中LEN(+RTRIM(列))<7;

根据您的示例,我不确定同一字段中是否有多个值。但是,假设给定行的值必须包含一个7位数且填充为0的数字,请参见下面的示例。请记住,存储填充值的列必须是字符串,例如VARCHAR

UPDATE table SET column = RIGHT('0000000' + column, 7)
这将更新任何要填充最多7个零的值

如果列当前存储为整数而不是字符串,请使用以下命令:

UPDATE table SET TextColumn = RIGHT('0000000' + CONVERT(VARCHAR, IntColumn), 7)
UPDATE table SET column = RIGHT('0000000' + column, 7)
UPDATE table SET TextColumn = RIGHT('0000000' + CONVERT(VARCHAR, IntColumn), 7)