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

时间:2016-03-31 19:47:57

标签: postgresql dml

我正在尝试为代码'001'添加+1,但我得到'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中解决了它。

1 个答案:

答案 0 :(得分:2)

LPAD期待一个字符串,所以请尝试:

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