sql server 查询去掉重复记录

来源:互联网 发布:网络受限制是怎么回事 编辑:程序博客网 时间:2024/05/16 10:31

数据表结构

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



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

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

Select * from stuinfo a where not exists(select 1 from stuinfo where stuName=a.stuName and ID<a.ID)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.IDselect * from stuinfo a where ID=(select min(ID) from stuinfo where stuName=a.stuName)

结果


原创粉丝点击