从unique-oracle中删除单行

时间:2014-09-03 14:42:08

标签: sql oracle

考虑以下情况

GroupId Name
------------  
G1      A1  
G1      A2
G1      A3  
G2      B1  
G2      A2  

,其中GroupIdName始终是唯一的。

现在我需要从所有组中将名称更改为C1并删除其余组,所以基本上我需要的是

GroupId Name
------------  
G1      C1  
G2      C1

我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:3)

试试这个:

delete YOUR_TABLE_HERE
 where rowid NOT in (select max(rowid) from YOUR_TABLE_HERE group by groupId)

update YOUR_TABLE_HERE
   set name = 'C1'