我有一张桌子,在我需要删除的一周内有很多帖子,时间戳不同所以我需要保留第一个条目,然后删除之后的所有其他条目。
建议使用哪种技术。
SQL Server 2008
非常感谢 Ĵ
答案 0 :(得分:1)
您可以使用delete
的CTE。结果是这样的:
with todelete as (
select p.*,
row_number() over (partition by post_id order by datetimecol asc) as seqnum
from posts p
)
delete from todelete
where seqnum > 1;
您可以运行子查询以查看发生的情况。
答案 1 :(得分:0)
删除除最旧的
以外的所有帖子DELETE FROM tbl
WHERE ID NOT IN
(
select top 1 id
from tbl
order by TimeStampColumn
)