我是 Postgresql 新手,在 Mac 上使用 pgadmin 4。我有一张表,其中记录了国际和国内地址,国际地址有 4 列,国内地址有 4 列(国家、州、城市、邮政编码)。我想将国际数据与国内数据结合起来,以便所有地址数据都位于同一列中。方法是将所有国际邮政编码复制到美国邮政编码列中。我尝试了以下 SQL 语句和其他一些语句,但没有成功。
UPDATE data_table
SET intl_postal_code = usa_zip
WHERE usa_zip IS NULL
上述方法没有任何效果。其他变体导致了一些数据复制,但删除了许多行。
我也尝试使用 concat:
SELECT concat(usa_zip, intl_postal_code);
这也不起作用,返回一个错误,说这些列不存在,但实际上它们确实存在。
答案1
看起来您已经翻转了update
语句中的列。如果您想更新美国邮政编码列,它应该位于赋值运算符的左侧:
UPDATE data_table SET usa_zip = intl_postal_code WHERE usa_zip IS NULL