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

jshesb

jshesb

2016-01-29 14:39

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

数据库结构的脚本:

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

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

(本文来源于图老师网站,更多请访问http://m.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)

展开更多 50%)
分享

猜你喜欢

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

电脑网络
使用一条SQL语句删除表中重复记录

删除重复记录并且剩下一条

编程语言 网络编程
删除重复记录并且剩下一条

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL语句去掉重复记录获取重复记录

编程语言 网络编程
SQL语句去掉重复记录获取重复记录

删除重复记录

编程语言 网络编程
删除重复记录

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在SQL Server中快速删除重复记录

MySQL mysql数据库
在SQL Server中快速删除重复记录

在SQL中删除重复记录(多种方法)

SQLServer
在SQL中删除重复记录(多种方法)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

综合图片计数器

综合图片计数器

oracle同时向多表插入数据

oracle同时向多表插入数据
下拉加载更多内容 ↓