Let's say I have a table that looks something like this:
-------------------------------
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
As you can see I want to delete the rows where the current and the previous row have the same value in column2.
Go ahead to right click selected cells and select the Delete from the right-clicking menu. And then check the Entire row option in the popping up Delete dialog box, and click the OK button. Now you will see all the cells containing the certain value are removed.
I would try something like
DELETE FROM Table t1
WHERE EXISTS (SELECT 1 from Table t2
WHERE t1.Column2 = t2.Column2
AND t2.Id + 1 = t1.Id)
For your specific query, I would use the t2.Id + 1 = t1.Id
instead of t2.Id < t1.Id
as this would delete for any occurances, not consecutive entries only.
DELETE FROM Table t1
WHERE EXISTS (SELECT 1 from Table t2
WHERE t1.Column2 = t2.Column2
AND t1.Column3 = t2.Column3
AND t1.Column4 = t2.Column4
AND t2.Id > t1.Id)
OR if you need compare rows just by one field
DELETE FROM Table t1
WHERE EXISTS (SELECT 1 from Table t2
WHERE t1.Column2 = t2.Column2
AND t2.Id > t1.Id)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With