我在postgresql数据库中有一列。他们是彩票号码。确切的说是四位数字。最初,我的列的数据类型为int。我插入了所有的彩票号码。插入所有数字后,我意识到它切断了我的零。例如0925是925.我将数据类型固定为varchar,但现在我需要弄清楚如何使用相同的数据将它从int修复为varchar。数据的长度必须是4位数。我试图找出有多少问题的数字,我不能写一个选择语句告诉我有多少行少于4位数。从int到varchar的数字
我应该怎么办?
谢谢。
我在postgresql数据库中有一列。他们是彩票号码。确切的说是四位数字。最初,我的列的数据类型为int。我插入了所有的彩票号码。插入所有数字后,我意识到它切断了我的零。例如0925是925.我将数据类型固定为varchar,但现在我需要弄清楚如何使用相同的数据将它从int修复为varchar。数据的长度必须是4位数。我试图找出有多少问题的数字,我不能写一个选择语句告诉我有多少行少于4位数。从int到varchar的数字
我应该怎么办?
谢谢。
格式你的号码:
UPDATE lottery
SET x = lpad(x, 4, '0')
看到它的在线工作
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;
用'SELECT COUNT(*)FROM lottery WHERE x <1000'计算计数不是很简单吗? – kgrittn
@kgrittn:我正在假设“我将数据类型固定为varchar”。 –