postgresql 将行更新为固定数字

onu*_*nur 2 sql postgresql append

我是 sql 查询的初学者,我正在尝试像这样更新我的行:

1--->0001

15-->0015

254-->0254

1458-->1458

我的列的类型是文本并且有很多列所以我无法处理

update table1 set col1 = 0001 where col1 = 1;
Run Code Online (Sandbox Code Playgroud)

等等..

这似乎是一个简单的问题,但经过研究,我找不到解决方案。我所需要的只是

foreach row in col1
if((int)row>0 and < 10)
then row = "000" + row;
Run Code Online (Sandbox Code Playgroud)

所有文本实际上都是整数值,但我必须将它们保留为文本。上面代码的sql查询是什么?

谢谢

a_h*_*ame 5

您可以使用该lpad()功能:

update table1
   set col1 = lpad(col1, 4, '0')
where length(col1) < 4;
Run Code Online (Sandbox Code Playgroud)

但真正的问题是:为什么要将数字存储为文本值?这几乎总是一个糟糕的选择。