更新数组并从varchar转换为整数

时间:2012-04-09 21:11:11

标签: arrays postgresql

我正在通过向int4数组添加varchar来更新数组。 'varchar'字段是所有数字,所以我尝试将其转换为:: integer但它不起作用

update dwh.attr_lookup set kli_tree = array[target_909_kli::integer] || kli_tree

给我这个错误

ERROR: ERROR: invalid input syntax for integer: ""

Query = update
dwh.attr_lookup set kli_tree = array[target_909_kli::integer]
|| kli_tree

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

您正在尝试将空字符串转换为整数,但这不起作用:

=> select ''::int;
ERROR:  invalid input syntax for integer: ""
LINE 1: select ''::int;
               ^

你必须决定用空字符串做什么。如果你想将它们转换为零,那么这样的东西应该有效:

array[case when target_909_kli = '' then 0 else target_909_kli::integer end]

答案 1 :(得分:1)

显然,您的varchar字段不是所有数字。在这种情况下不会有任何双引号 - 因为错误消息通知我们。

如果错误现在尚未清除,请尝试提供完整示例。包括表定义和样本值。