使用一条SQL语句删除表中重复记录

2016-01-29 14:39 24 1 收藏

使用一条SQL语句删除表中重复记录,使用一条SQL语句删除表中重复记录

【 tulaoshi.com - Oracle教程 】

数据库结构的脚本:


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TempA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TempA]
GO

CREATE TABLE [dbo].[TempA] (
 [id] [int] IDENTITY (1, 1) NOT NULL ,
 [PositionName] [varchar] (256) COLLATE Chinese_PRC_CI_AS NULL ,
 [EnglishPositionName] [varchar] (256) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

ALTER TABLE [dbo].[TempA] ADD
 CONSTRAINT [PK_TempA] PRIMARY KEY  CLUSTERED
 (
  [id]
 )  ON [PRIMARY]
GO



TempA表中有三个字段,id唯一且为主键,自动增长; PositionName,EnglishPositionName中有重复的记录,比如:
id      PositionName        EnglishPositionName
20     其他                           Others
21     质量工程师               QC Engineer
22     其他                           Others
.......
100  质量工程师               QC Engineer
需要剔除重复的"其他","质量工程师"等记录。

采用的SQL语句:
Delete from TempA where id not in (
        select max(t1.id) from TempA t1 group by
         t1.PositionName,t1.EnglishPositionName)

说明:
(1)需要剔除那几个用于判断重复的字段,则将它们放在group by语句之后。
(2)max(t1.id) 也可以改成:min(t1.id)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

来源:https://www.tulaoshi.com/n/20160129/1493828.html

延伸阅读
标签: 办公软件
在Excel中录入数据后,我们一般用高级筛选来处理删除重复的记录,Excel 2007保留了这个功能,同时又增加了一个“删除重复项”按钮,使操作更加简单、灵活。 一、传统方法:使用高级筛选 步骤如下: 1.单击数据区,选中其中的任一个单元格。如果只是针对其中部分字段和记录进行筛选,可先选中这部分区域。注意:只对连续选中的矩形区域有效...
1.所有记录的分页: SELECT TOP 页大小 * FROM Users WHERE (ID NOT IN (SELECT TOP (页大小*(页数-1)) ID FROM Users ORDER BY ID DESC)) //skip(页大小*(页数-1)) 条记录 ORDER BY ID DESC 2.符合条件记录的分页(注意此时你的查询条件要分布在两个查询语句中,谨记) SELECT TOP 页大小 * FROM Users WHERE +你的查询条件 AN...
标签: 电脑入门
在以前版本的Excel中录入数据后,使用高级筛选功能来删除重复的记录(操作比较复杂),到了Excel2007以后增加了一个删除重复项功能,来删除重复记录就显得更加容易上手了。 操作如下: 首先选中数据区中的任一单元格,然后单击数据菜单,再单击数据工具功能区中的删除重复项按钮,在弹出的删除重复项对话框选择要检查的区域,最后单击两次确定...
下面我们来看下,如何利用它来删除一个表中重复记录: 代码如下: If Exists(Select * From tempdb.Information_Schema.Tables Where Table_Name Like '#Temp%') Drop Table #temp Create Table #temp ([Id] int, [Name] varchar(50), [Age] int, [Sex] bit default 1) Go Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(1,'J...
标签: 电脑入门
在Excel中录入数据后,我们一般用高级筛选来处理删除重复的记录,Excel2007保留了这个功能,同时又增加了一个删除重复项按钮,使操作更加简单、灵活。 一、传统方法:使用高级筛选 步骤如下: 1.单击数据区,选中其中的任一个单元格。如果只是针对其中部分字段和记录进行筛选,可先选中这部分区域。注意:只对连续选中的矩形区域有效。 2....

经验教程

442

收藏

55
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部