sql server的去重

数据表结构

[sql]  view plain copy
  1. if exists(select * from sysobjects where name='stuInfo')  
  2. drop table stuInfo  
  3. create table stuInfo /*创建学员信息表**/  
  4. (  
  5.  stuName varchar(20) not null,-- 姓名,非空  
  6.  stuNo char(6) not null,-- 学号,非空  
  7.  stuAge int not null,-- 年齡,int 默认为4个长度  
  8.  stuId numeric(18,0),  
  9.  stuSeat smallint ,-- 坐位  
  10.  stuAddress text -- 住址 可以为空  
  11. )  
  12. -- 给stuInfo添加一列  
  13. alter table stuInfo add id int identity(1,1) primary key;  



需求:只要数据stuName 相同,则说明是两条重复的记录

以下为去重方法。三个方法。效率1 >2>3 推荐使用第一条

[sql]  view plain copy
  1. Select * from stuinfo a where not exists(select 1 from stuinfo where stuName=a.stuName and ID<a.ID)  
  2. select a.* from stuinfo a join (select min(ID)ID,stuName from stuinfo group by stuName) b on a.stuName=b.stuName and a.ID=b.ID  
  3. select * from stuinfo a where ID=(select min(ID) from stuinfo where stuName=a.stuName)  

结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值