【发布时间】:2015-11-30 11:33:41
【问题描述】:
我在将包含文本值的列转换为整数值时遇到问题。
在表地址中,我有列“邮政编码”类型 TEXT。我创建了一个新的列名“postcode_int”类型的整数。 在“邮政编码”列中,有些人写了例如“330 ...”或“00234”。 我如何检查该值是否为整数。如果一个值是整数,那么如何将此值从 TEXT 类型转换为 Integer 类型并将它们设置在“postcode_int”列中,以便稍后我可以在“11111”和'99999'。
我试图做这样的事情:
UPDATE adresse
SET postcode_int= case
when pg_typeof( REGEXP_REPLACE( COALESCE(trim( LEADING '0' FROM postcode), '0'),
'[^0-9]*' ,'0')::integer
) = integer
then postcode_int
else 0
end;
关于
安德烈
【问题讨论】:
-
cast(charcol 作为整数)
-
或者你也可以
yourCharCol::integer -
如果我按照你的方式做,那么我得到这个错误:invalid input syntax for integer: "388.."
-
所以你只想转换整数值,检查它们实际上是整数,因为可以有非整数值。您必须将此信息添加到您的问题中,因为它很重要!
-
@A.Greensmith 错误是因为有些行不能转换,因为它不是整数值。
标签: sql postgresql