当整数的长度小于7位时,我想附加前导零。如果整数的长度大于或等于7位数字,则应返回实际的整数。我已经尝试过下面的sql
select to_char(123456, 'fm0000000');
to_char
---------
0123456
(1 row)
当数字位数> 7时,它在字符串下方返回
select to_char(12345678, 'fm0000000');
to_char
---------
#######
(1 row)
当位数大于7时,如何获得确切的整数?预先感谢
答案 0 :(得分:3)
您可以使用lpad()
:
select (case when len(123412345::text) >= 8 then 123412345::text
else lpad(123412345::text, 8, '0')
end)
答案 1 :(得分:2)
使用lpad函数和CASE语句:
select
case
when length(123456::text) < 7 then lpad(123456::text, 7, '0')
else 123456::text
end;