• 章节:19
  • 访问:1605
  • 时长:00:15:51
  • 日期:2019-05-20 07:59

学生表 如下:

ID   学号   姓名 课程编号 课程名称 分数

1    2005001 张三 0001     数学    69

2    2005002 李四 0001      数学    89

3    2005001 张三 0001      数学    69

delete from [Stu] where ID in
(
  SELECT MAX(ID)
  FROM [Demo].[dbo].[Stu]
  group by [学号]
      ,[姓名]
      ,[课程编号]
      ,[课程名称]
      ,[分数]
  having count(1) > 1
)
--上面的sql有个问题 就是如果重复的记录 超过两条就有问题了。
delete from [Stu] where ID not in
(
  SELECT min(ID)
  FROM [Demo].[dbo].[Stu]
  group by [学号]
      ,[姓名]
      ,[课程编号]
      ,[课程名称]
      ,[分数]
  having count(1) > 1
)