我正在尝试为代码'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中解决了它。
答案 0 :(得分:2)
LPAD期待一个字符串,所以请尝试:
select LPAD(cast(cast(code as int) + 1 as varchar), 3, '0') from example;