2014-09-30 94 views
0

我有一個Sqlite表,其中ColumnA中具有相同值但ColumnB中具有不同值的行。下面的查詢給了我幾百行。用另一列中的值更新列

由具有計數ColumnA(*)> 1

我的要求是,對於具有相同ColumnA值的行,每當有一個在ColumnC在任何行中的值,填充在ColumnC值從MyTable的 組選擇ColumnA所有行。以下是輸入和輸出。

有人可以幫忙嗎?

+--------------------------+ 
| +------+-------+------+ | 
+--------------------------+ 
| |ColumnA|ColumnB|ColumnC | 
| +------+-------+------+ | 
| |C2  |Val1 |  | 
| +------+-------+------+ | 
| |C2  |Val2 |P  | 
| +------+-------+------+ | 
| |B2  |Val3 |Q  | 
| +------+-------+------+ | 
| |B2  |Val4 |  | 
| +------+-------+------+ | 
+--------------------------+ 

輸出:

+---------------------------------------------------+ 
|    +------+-------+------+    | 
+---------------------------------------------------+ 
| |ColumnA|ColumnB|ColumnC       | 
| +------+-------+------+       | 
| |C2  |Val1 |P  //add P to this row  | 
| +------+-------+------+       | 
| |C2  |Val2 |P        | 
|             | 
| +------+-------+------+       | 
| |B2  |Val3 |Q        | 
| +------+-------+------+       | 
| |B2  |Val4 |Q   //add Q to this row | 
| +------+-------+------+       | 
+---------------------------------------------------+ 

回答

2

這是不是你想要做什麼?它使用相關的子查詢來更新值:

update mytable 
    set columnc = (select max(columnC) from mytable t2 where t2.columnA = mytable.columnA) 
    where columnC is null; 
+0

這正是我想要的。沒有意識到max(columnC)即使對於文本列也可以實現。非常感謝! – Aqua267 2014-09-30 19:18:41

相關問題