我是 sql 查询的初学者,我正在尝试像这样更新我的行:
1--->0001
15-->0015
254-->0254
1458-->1458
我的专栏类型是文本,而且有很多栏,所以我无法处理
update table1 set col1 = 0001 where col1 = 1;
等等..
这个问题看起来很简单,但经过研究,我找不到解决方案。我只需要类似的东西
foreach row in col1
if((int)row>0 and < 10)
then row = "000" + row;
所有文本实际上都是整数值,但我必须将它们保留为文本。上面代码的sql查询是什么?
谢谢
最佳答案
您可以使用 lpad()
函数:
update table1
set col1 = lpad(col1, 4, '0')
where length(col1) < 4;
但真正的问题是:为什么要将数字存储为文本值?这几乎总是一个糟糕的选择。
关于sql - postgresql 将行更新为固定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38628310/