读书人

遇到一个难题,能不能找个最简单的删除

发布时间: 2012-12-30 10:43:15 作者: rapoo

遇到一个难题,能不能找个最简单的删除语句实现以下目的?
有记录若干,以时间为主键,每次执行删除语句时,只保留最新更新的记录10条,其余删除,用程序的方法可以实现,但是我想找到一条SQL语句能实现这个功能.
[解决办法]

delete from dbo where 时间 not in (select top 10 时间 from  dbo.t2 order by 时间 asc)

[解决办法]
你是什么数据库:

mssql:
delete from 表名 where 时间 not in (select top 10 时间 from 表名 order by 时间 desc)

mysql:
delete from 表名 where 时间 not in (select 时间 from 表名 order by 时间 desc limit 10)

oracle:
delete from 表名 where 时间 not in (select 时间 from (select rownum as rowid,时间 from 表名 order by 时间 desc) where rowid<=10)

[解决办法]
引用:
SQL codedeletefrom dbowhere 时间not in (selecttop10 时间from dbo.t2orderby 时间asc)

up
[解决办法]
什么数据库?
delete a from tt a left join (select top 10 * from tt order by time desc) b
on a.time=b.time where b.time is null
[解决办法]
delete from yourTable
where mytime < (select min(mytime) from (select top 10 mytime from yourTable order by yourTable desc) t)

读书人网 >SQL Server

热点推荐