我对PostgreSQL比较陌生,我知道如何在SQL Server中用左边的零填充数字,但在PostgreSQL中我很难弄明白这一点.

我有一个数字列,其中最大数字是3,最小数字是1:如果是一个数字,左边有两个零,如果是两个数字,左边有一个,例如001,058,123.

在SQL Server中,我可以使用以下功能:

RIGHT('000' + cast([Column1] as varchar(3)), 3) as [Column2]

这在PostgreSQL中不存在.任何帮助都将不胜感激.

推荐答案

您可以使用rpadlpad功能分别将数字填充到右侧或左侧.请注意,这不会直接作用于数字,因此您必须使用::char::text来转换它们:

SELECT RPAD(numcol::text, 3, '0'), -- Zero-pads to the right up to the length of 3
       LPAD(numcol::text, 3, '0')  -- Zero-pads to the left up to the length of 3
FROM   my_table

Sql相关问答推荐

Postgresql -如何计算刷卡和刷卡时间

在数据分区内执行确定

如何转换和汇总行数

在SQL中创建一个计数器,根据BigQuery/SQL中的条件递归地添加行值

SQL Oracle条件分组依据

将重复的值更新为下一个空闲数字

更新其组的日期字段值小于最大日期减go 天数的记录

SQL子查询返回多个值错误

为什么我的SQL标量函数有时会抛出";子查询返回多个值.这是不允许的.

在SQL中为两个日期之间的每个日期添加行

如何根据行状态设置正确的标志

缺少日期标识

Select 列组(按同一表格中的另一列分组)Laravel 10

计算不同模式的时间跨度

将空 JSON 数组添加到 SQL Server 表列中的 JSON 字符串

如何计算两个非周期性时间序列+分组的重叠持续时间

在Snowflake中如何使用SQL对版本字符串进行排序?

使用in和and运算符过滤记录的条件

如何将 CONCATENATED 值与临时表中的值匹配

如何 Select 一列具有最小值而另一列具有给定值的记录?