您的位置:首页 > 其它

利用rowid删除重复记录保留一行

2013-04-09 14:07 423 查看
CREATETABLEbeke01(NAMEVARCHAR2(30),
ageNUMBER,
addressVARCHAR2(50));

INSERTINTObeke01
VALUES
('beke',
25,
'shanghai');
Insert3次,这时表中有3条重复纪录;
SELECTROWID,a.*FROMbeke01aWHERE(a.NAME,a.age)IN(SELECTNAME,ageFROMbeke01GROUPBYNAME,ageHAVINGCOUNT(*)>1);查找重复的纪录
SELECTROWID,NAME,age,addressFROMbeke01WHEREROWIDIN(SELECTMAX(ROWID)FROMbeke01GROUPBYNAME,age,address);
过滤重复纪录,只选出一条;
DELETEFROMbeke01WHEREROWIDNOTIN(SELECTMAX(ROWID)FROMbeke01GROUPBYNAME,age,address);
删除重复纪录保留一条,保留一条记录;除了聚集函数中的字段,其余所有字段必须加在gourpby后面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: