2014-04-10 39 views
0

我有一个ID列和一堆其他表。我也有表B有一个像表A一样的ID列,还有另一列叫做国家。但是,并非表A中的所有ID都在表B中。我想向名为countries2的表A中插入一个新列,该表基本上插入表B中与两个表中的ID相对应的国家/地区。如果B中不存在来自A的特定ID,那么它总是将VARCHAR'none'放入到countries2中。 因此,例如,如果表A具有的ID 1,2,3,4和表B中的样子:
ID - 国家
1 --- 'foo1'
3 --- 'foo2的'如果不插入特定值,则根据条件插入另一个表中的数据PSQL

我想表A中成为类似:
ID - COUNTRY2 - 其他原始资料,从表一
1 --- 'foo1' --...
2 --- '无' - 。 ...
3 ---'foo2' - ...
4 ---'none' - ...

+0

你阙stion是相当混乱的......该死! – Achilles

+0

这不是一个令人困惑的问题,但答案可能不是非常直接的... 你希望这完全在SQL中完成? – shieldstroy

回答

1

您需要首先改变你的表A中添加一个额外的列varchar类型(即yourNewColumn)/ VARCHAR2

添加列尝试像

ALTER TABLE TableA ADD COLUMN yourNewColumn varchar(10); 

然后你可以使用类似下面更新表A

UPDATE TableA 
SET yourNewColumn = ISNULL(TableB.countries, 'none') 
FROM TableA 
LEFT JOIN TableB ON TableA.id = TableB.id 

在PostgreSQL的ISNULL函数可能是这样的

SET yourNewColumn = CASE WHEN TableB.countries IS NULL THEN 'none' ELSE TableB.countries END 
相关问题