sql - postgresql 将行更新为固定数字

标签 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;

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

谢谢

最佳答案

您可以使用 lpad() 函数:

update table1
   set col1 = lpad(col1, 4, '0')
where length(col1) < 4;

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

关于sql - postgresql 将行更新为固定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38628310/

相关文章:

sql - 在 pl/pgsql 中向表中插入一行

sql - Postgres : How to join multiple tables?

c - 在没有指针算法的情况下将格式化字符串 append 到 C 中的字符串

c# - 如何在 Visual Studio 2015 中为 SQL Server 创建数据库图表?

mysql - SQL 查询问题

mysql 查询显示错误结果

postgresql - 如何从经常访问的表中删除多行

Python从字典中删除单引号

date - 如何将当前日期或时间添加到文件中每一行的末尾?

c - 在 Linux C 程序中从资源文件追加到现有文件