如何将文本值转换为整数值

时间:2015-11-30 11:33:42

标签: sql postgresql

我将使用文本值转换为整数值时遇到问题。

在表格地址中我有专栏'邮政编码'键入TEXT。我创建了一个新的列名称' postcode_int'类型整数。 在列'邮政编码'有些人写了例如' 330 ......'或' 00234'。 如何检查值是否为整数。如果值为整数,则如何将此值从TEXT类型转换为Integer类型,并将它们设置为列&post; 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;

关于

安德烈

1 个答案:

答案 0 :(得分:0)

我相信你需要的SQL是:

UPDATE adresse 
SET postcode_int = CAST(postcode AS INT)

这是基于你的例子。

如果答案不明确,请要求修改。