2017-07-24 8 views
0

我有一張桌子,在我需要刪除的一週中有很多貼子,時間戳是不同的,所以我需要保留第一個條目,但隨後刪除所有其他來的之後。刪除多個帖子,但保持優先

什麼技術將被建議。

SQL Server 2008中

非常感謝 Ĵ

+0

所有的職位你應該標記與樣本數據和預期效果你的問題。 –

+1

[爲什麼我應該爲我認爲是非常簡單的SQL查詢提供一個MCVE?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for - 什麼,似乎對我將要-A-極簡單的SQL查詢) – AakashM

回答

1

您可以使用CTE與delete。結果是這樣的:

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; 

你可以運行子查詢來看看發生了什麼。

0

刪除除最古老的

DELETE FROM tbl 
WHERE ID NOT IN 
(
    select top 1 id 
    from tbl 
    order by TimeStampColumn 
)