如何添加+;1至代码';001和x27;和代码';009';在PostgreSQL中?
我试图将+1添加到代码“001”,但我得到的是“2”而不是“002”,将+1添加到代码“009”,但得到的是“10”而不是“010” 表:如何添加+;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
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。因为这是一个代码,但无论如何我可以进行转换。对不起,您刚才说的没有任何意义