2

假设我们有这些数据:

rc_id      phonenumber
1               0
2               0
5               1
5               3
5               3
5               3 

我想删除匹配rc_id5 和phonenumber3 的记录,同时保留至少 1 个

最终结果应该是:

rc_id      phonenumber
1               0
2               0
5               1
5               3

注意:我不想使用唯一标识符

我目前正在使用此语句,但我注意到这也会删除所有其他重复项。

cmd.CommandText = "DELETE FROM tbl_data WHERE rc_id='5' AND phonenumber='3'";
4

3 回答 3

0

您可能会使用 RowNumber() over()

delete from tbl_data where  Rownumber() Over(partition by rc_id, phonenumber Order by rc_id) > 1
于 2013-08-05T12:24:48.423 回答
-1

set rowcount 1 delete from tbl_data where rc_id='5' AND phonenumber='3'

于 2013-08-05T12:23:58.343 回答
-1

那这个呢:

cmd.CommandText = "DELETE FROM tbl_data WHERE rc_id='5' AND phonenumber='3'
                   LIMIT (SELECT COUNT(*)-1 FROM tbl_data WHERE rc_id='5' AND phonenumber='3')";
于 2013-08-05T12:35:13.363 回答