如何添加+;1至代码';001和x27;和代码';009';在PostgreSQL中?

如何添加+;1至代码';001和x27;和代码';009';在PostgreSQL中?,postgresql,dml,Postgresql,Dml,我试图将+1添加到代码“001”,但我得到的是“2”而不是“002”,将+1添加到代码“009”,但得到的是“10”而不是“010” 表: create table example ( code varchar(7), row1 varchar(10), row2 varchar(7), CONSTRAINT pk_code PRIMARY KEY (code) )) 插入: insert into example(code

我试图将+1添加到代码“001”,但我得到的是“2”而不是“002”,将+1添加到代码“009”,但得到的是“10”而不是“010”

表:

create table example
(
    code        varchar(7),
    row1        varchar(10),
    row2        varchar(7),


CONSTRAINT pk_code PRIMARY KEY (code)
))

插入:

insert into example(code, row1, row2) 
values('001','x1', 'y1');

insert into example(code, row1, row2) 
values('009','x2', 'y2');
我尝试下一个查询:

select LPAD(cast(code as int)+1, 3, '0') from example;
Postgresql返回我:

提示:没有函数与参数的名称和类型匹配。您可能需要添加显式类型转换


@juergen d在mysql中解决了这个问题。

LPAD需要一个字符串,所以请尝试:

select LPAD(cast(cast(code as int) + 1 as varchar), 3, '0') from example;

首先,为什么要将数字保存为varchar?例如,在MySQL中,您可以选择在列上使用ZEROFILL。因为这是一个代码,但无论如何我可以进行转换。对不起,您刚才说的没有任何意义