如果前一个在特定列中具有相同的值,如何删除行

pic*_*ick 5 sql sql-server-2005

假设我有一个看起来像这样的表:

-------------------------------
id|column2|column3   |column4
-------------------------------
1  value1  somevalue  somevalue
2  value2  somevalue  somevalue
3  value2  somevalue  somevalue <----- I want this column deleted
4  value3  somevalue  somevalue
Run Code Online (Sandbox Code Playgroud)

如您所见,我要删除column2中当前行和上一行具有相同值的行。

Adr*_*der 5

我会尝试像

DELETE FROM Table t1 
WHERE EXISTS (SELECT 1 from Table t2 
              WHERE t1.Column2 = t2.Column2 
              AND t2.Id + 1 = t1.Id) 
Run Code Online (Sandbox Code Playgroud)

对于您的特定查询,我将使用t2.Id + 1 = t1.Id代替,t2.Id < t1.Id因为这会删除所有出现的事件,而不仅仅是连续输入。