使用同一列中的其他值更新列值

时间:2012-09-12 15:13:32

标签: sql

我有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查询。

1 个答案:

答案 0 :(得分:2)

您可以通过简单的更新来完成此操作,该更新应该适用于任何数据库:

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