我在 postgresql 数据库中有列。它们是彩票号码。确切地说,长度为四位数。最初,我将列的数据类型设为 int。我插入了所有的彩票号码。在我插入所有数字后,我意识到它把我的零切掉了。例如 0925 是 925。我将数据类型固定为 varchar,但现在我需要弄清楚如何使用相同的数据将其从 int 修复为 varchar。数据长度必须为 4 位。我试图弄清楚有多少问题编号,但我无法编写一个选择语句来告诉我有多少行少于 4 位。
我该怎么办?
谢谢。
我在 postgresql 数据库中有列。它们是彩票号码。确切地说,长度为四位数。最初,我将列的数据类型设为 int。我插入了所有的彩票号码。在我插入所有数字后,我意识到它把我的零切掉了。例如 0925 是 925。我将数据类型固定为 varchar,但现在我需要弄清楚如何使用相同的数据将其从 int 修复为 varchar。数据长度必须为 4 位。我试图弄清楚有多少问题编号,但我无法编写一个选择语句来告诉我有多少行少于 4 位。
我该怎么办?
谢谢。
使用以下格式格式化您的数字to_char()
:
SELECT to_char(123, 'FM0000');
您甚至可以将它们保留为整数并在查询中使用表达式。
或者,要将您的列从整数转换回原位文本:
ALTER TABLE tbl ALTER column col TYPE text USING to_char(col, 'FM0000');
由于您似乎已经将数字转换为varchar
,因此表达式需要额外转换为整数:
SELECT to_char(col::int, 'FM0000')
FROM tbl;