如何删除 SQL Server 表中的重复行(2)
来源:互联网 发布:qq自动回复软件 编辑:程序博客网 时间:2024/05/17 22:57
思想:新增一列标识列ID,按某一字段进行分组,保留改组中ID值最小的记录,其余的删除。
1.首先创建测试数据表
1.首先创建测试数据表
create table testData(stuNum varchar(20),stuName varchar(20),class varchar(20),age int,sex varchar(2))insert into testDataselect '200810405325','杨宏','计科083',22,'男' union allselect '200810405326','刘华','土木082',24,'男' union allselect '200810405326','刘华','土木082',24,'男' union allselect '200810405328','张叶','会计088',23,'女' union allselect '200810405343','罗雯','建筑085',22,'女' union allselect '200810405343','罗雯','建筑085',22,'女' union allselect '200810405343','罗雯','建筑085',22,'女' union allselect '200810405356','孟兴','桥梁081',25,'男'可以看出有两个刘华、三个罗雯,而且其信息一模一样,表中存在重复数据,我们只保留一个。 2.修改表结构,增加一个标识列id
alter table testData add ID int identity(1,1)现在我们来看一下表结构:
select * from testData with(nolock)/*stuNum stuName class age sex ID-------------------- -------------------- -------------------- ----------- ---- -----------200810405325 杨宏 计科083 22 男 1200810405326 刘华 土木082 24 男 2200810405326 刘华 土木082 24 男 3200810405328 张叶 会计088 23 女 4200810405343 罗雯 建筑085 22 女 5200810405343 罗雯 建筑085 22 女 6200810405343 罗雯 建筑085 22 女 7200810405356 孟兴 桥梁081 25 男 8*/3.现在我们来删除其中的重复数据,其思想是按照stuNum进行分组,选出每组中ID值最小的记录保留,其余重复的删除。
delete from testData where ID not in( select MIN(ID) from testData group by stuNum)
我们再来看一下现在表中的数据:重复数据被删除了。
select * from testData with(nolock)stuNum stuName class age sex ID-------------------- -------------------- -------------------- ----------- ---- -----------200810405325 杨宏 计科083 22 男 1200810405326 刘华 土木082 24 男 2200810405328 张叶 会计088 23 女 4200810405343 罗雯 建筑085 22 女 5200810405356 孟兴 桥梁081 25 男 84.最后记得删掉之前增加的标识列id
alter table testData drop column ID
这种方法适合于没有主键,数据表中可以重复插入数据的情况。即重复数据所有对应字段都一样。
- 如何删除 SQL Server 表中的重复行(2)
- 如何删除 SQL Server 表中的重复行(1)
- 如何删除 SQL Server 表中的重复行
- 如何删除 SQL Server 表中的重复行
- 如何删除 SQL Server 表中的重复行
- 如何删除 SQL Server 表中的重复行
- 详解如何删除SQL Server表中的重复行
- 删除SQL Server表中的重复行
- 删除 SQL Server 表中的重复行
- 如何删除 SQL Server 表中的重复行(转自Microsoft)
- Sql Server 删除表中的重复数据
- SQL SERVER删除重复行
- SQL Server删除重复行
- SQL Server 2000删除表中的重复记录
- SQL Server 2000删除表中的重复记录
- 搜索/删除 Sql server 表中的重复值。
- 数据库SQL server 删除一张表中的重复记录
- 删除sql server中的重复记录
- oracle 自然连接,内连接,外链接,全连接,自连接
- STRING.EQUALS()和STRING.EQUALSIGNORECASE()的区别
- ISO/IEC 14443协议浅谈—TYPE A 与 TYPE B 之比较
- 7bit编码解码---未测试
- adb过时问题,应用部署不到模拟器上 与豌豆夹冲突
- 如何删除 SQL Server 表中的重复行(2)
- 一条sql统计一个班级的男女人数
- Mongodb matlab Driver 使用简介
- OVERLAY
- Java求1到1000以内的完数
- void InputDlg::slotName()
- silverligth datagrid 分组
- cython安装、使用
- 深入掌握JMS JMSCorrelationID与Selector