如何从给定数字的左侧添加零到右侧

时间:2016-09-21 16:55:20

标签: postgresql

你可以把左下角的零转换成右手吗? 例如:

Number        output
0012345        1234500
00008794       87940000

请帮助我哪个功能会给出上述结果。

3 个答案:

答案 0 :(得分:0)

我假设Number的类型为text,否则它将不会保留前导零。然后,以下应该这样做:

SELECT regexp_replace(Number,'^(0*)([0-9]*)','\2\1') AS output;

如果希望output是一个整数,你可以简单地对其进行类型转换:

SELECT regexp_replace(Number,'^(0*)([0-9]*)','\2\1')::integer AS output;

答案 1 :(得分:0)

这是python。

例如:

 a = "0012345"
 str(int(a)) + (len(a) - len(str(int(a))))*"0"

答案 2 :(得分:0)

这是另一种选择:

SELECT CAST(Number AS int) * 10 ^ (LENGTH(Number) - LENGTH(REPLACE(Number, '0', '')))
FROM yourTabl

<强>解释

CAST将删除任何前导零,留下一个整数,例如12345。然后将这个数字乘以10加到左边的原始文本填充的零数。