postgresql将行更新为固定位数
我是sql查询的初学者,我正在尝试这样更新我的行: 1--->0001 15-->0015 254-->0254 1458-->1458 我的列的类型是文本,有很多列,所以我无法处理postgresql将行更新为固定位数,sql,postgresql,append,Sql,Postgresql,Append,我是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;
update table1 set col1 = 0001 where col1 = 1;
等等
这个问题似乎很简单,但经过研究,我找不到解决办法。我所需要的只是
foreach row in col1
if((int)row>0 and < 10)
then row = "000" + row;
col1中的每一行
如果((int)行>0且<10)
然后row=“000”+行;
所有文本实际上都是整数值,但我必须将它们保留为文本。以上代码的sql查询是什么
谢谢您可以使用lpad()
函数:
update table1
set col1 = lpad(col1, 4, '0')
where length(col1) < 4;
更新表1
设置col1=lpad(col1,4,'0')
式中,长度(col1)<4;
但真正的问题是:为什么要将数字存储为文本值?这几乎总是一个糟糕的选择 该列是什么数据类型?如果它是一个数字,它将永远不会存储前导零。(如字符串)谢谢,它可以工作,但必须有小的变化。我们必须将col1更改为“0”。这对我很有用:更新table1 set col1=lpad(col1,4,'0'),其中长度(col1)<4;