PID PNAME PUNIT PTYPE
2000 ***** ***** WL
2000 ***** ***** CP
2001 ***** ****** CP
2001 ***** ****** WL
20009 ***** ***** WL
20056 ***** **** CP
将两个相同的PID删除一个,得到PTYPE为CP的PID先行谢过!
2000 ***** ***** WL
2000 ***** ***** CP
2001 ***** ****** CP
2001 ***** ****** WL
20009 ***** ***** WL
20056 ***** **** CP
将两个相同的PID删除一个,得到PTYPE为CP的PID先行谢过!
select rowid from tablename where pid in (2000,2001,......)delete from tablename where ptype is not cp and rowid=你所要删除的记录所对应的ROWID
delete from tablenameinsert into tablename select * from temptabledrop table temptable
(select PID,count(*) from 表名 group by PID having count(*) > 1)
上面这句话就是建立了临时表,并将查询到的重复PID的数据插入其中。
下面就可以进行这样的删除操作了:
delete from 表名 a where PID in (select PID from 临时表) And PTYPE='WL'
完了将临时表删除
Drop Table 临时表
where a.pid=b.pid and a.ptype <> 'CP')
有什么改的方法吗?谢谢