Sql 如何为已经有值的列添加值

Sql 如何为已经有值的列添加值,sql,postgresql,Sql,Postgresql,如何为已经有值的列添加值。因此,此控制台中的值的最大长度为10 开始时,列中的值具有不同的长度 例如。我有两列数据库。 ID列中的每个值最多应包含10个字符,如果要省略这些字符,则应在其前面加上零 USER ID 1111 0000012345 2222 001234 3333 567890 4444 67890 5555 7778889 我想您需要lpad(): 或者您可能希望在选择中使用此选项: select t.*, lpad(id, 10, '0')

如何为已经有值的列添加值。因此,此控制台中的值的最大长度为10

开始时,列中的值具有不同的长度

例如。我有两列数据库。
ID列中的每个值最多应包含10个字符,如果要省略这些字符,则应在其前面加上零

USER    ID
1111    0000012345
2222    001234
3333    567890
4444    67890
5555    7778889

我想您需要
lpad()

或者您可能希望在
选择中使用此选项:

select t.*, lpad(id, 10, '0') as id_10
from t;

你的问题不清楚

据我所知,如果您想选择ID列,该列应显示长度为10,然后在查询下方显示

SELECT RIGHT(REPLICAE('0',10) + ID ,10) FROM <YourTableName>
从中选择右侧(复制('0',10)+ID,10)

您可以像下面这样做

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

另外,在我的表中,我已经设置了ID列长度应为10的约束,但是如果您的值长度超过10,那么我不确定您将如何处理该问题,因为有不同的选项。您可以使整列“无效”或截断它。

您想要什么结果?请阅读:Postgres中没有
replicate()
函数,
+
运算符仅用于在SQL中添加数字,不能与字符串一起使用。然后将选择LPAD(ID::TEXT,10,'0')作为@a_horse_的ID,没有更新Postgres的名称!
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