Sql 如何为已经有值的列添加值
如何为已经有值的列添加值。因此,此控制台中的值的最大长度为10 开始时,列中的值具有不同的长度 例如。我有两列数据库。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')
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