如何为已有值的列增加值。这样该控制台中的值最多可以有10个长度。
开始时,列中的值具有不同的长度
示例。我有2列DB。
ID列中的每个值最多应包含10个字符,如果要省略,则应在其前面加上零
USER ID
1111 0000012345
2222 001234
3333 567890
4444 67890
5555 7778889
答案 0 :(得分:0)
我认为您想要lpad()
:
update t
set id = lpad(id, 10, '0');
或者您可能希望在select
中使用它:
select t.*, lpad(id, 10, '0') as id_10
from t;
答案 1 :(得分:0)
您的问题不清楚。
据我了解,如果要选择ID列,该列的长度应为10,然后在查询下方。
SELECT RIGHT(REPLICAE('0',10) + ID ,10) FROM <YourTableName>
答案 2 :(得分:0)
您可以按照以下步骤进行操作。
create temp table my_table(
USER1 int,
ID varchar(10));
insert into my_table
values(1111,'0000012345'),
(2222, '001234'),
(3333,'567890'),
(4444,'67890'),
(5555,'7778889');
select USER1,
CASE
WHEN length(ID)<10 THEN CONCAT(repeat('0',10-length(ID)),ID)
ELSE ID
END as ID
from my_table
结果将是这样。
USER1 ID
1111 0000012345
2222 0000999932
3333 0000333413
2222 0000994554
在我的表中,我已经施加了约束,即ID列的长度应为10,但是如果您的值大于10,那么我不确定要如何处理该问题,因为对此有不同的选择。您可以将整个列设置为“无效”或截断它。