2014-04-10 40 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 
相關問題