2012-09-12 45 views
-1

我有类似AB的字段。该数据是这样的:使用同一列中的其他值更新列值

+---+-----+ 
| A | B | 
+---+-----+ 
| 1 | 100 | 
| 1 | A | 
| 2 | 200 | 
| 2 | A | 
| 3 | 300 | 
| 3 | A | 
+---+-----+ 

现在我需要的输出数据是:

+---+-----+ 
| A | B | 
+---+-----+ 
| 1 | 100 | 
| 1 | 100 | 
| 2 | 200 | 
| 2 | 200 | 
| 3 | 300 | 
| 3 | 200 | 
+---+-----+ 

我需要GP数据库的SQL查询。

+0

你使用的是什么RDBMS? sql-server,mysql,oracle? – Taryn

+1

什么数据库?什么是“GP数据库”,为什么“100”而不是“A”?你想要的数字?或基于订单(你缺乏)? –

回答

2

你可以用一个简单的更新做到这一点,应该在任何数据库工作:

update t 
    set B = (select max(B) from t2 where B <> 'A' and t2.A = t.A) 
    where B = 'A' 
+0

Thx很多:)它工作正常。 – user1666212

相关问题