如何把具有相同字段的记录删除,只留一条
表test里有id,name字段,如果有name相同的记录,想要实现只留下一条,其余的删除.(注name的内容不定,相同的记录数不定)
如何实现
if object_id('s') is not null
drop table s
go
create table s(id int identity,name varchar(10))
insert into s select 'aa'
union all select 'aa'
select * from s
delete from s where not exists ( select 1 from (select max(id) as id ,name from s group by name) m where id=s.id)
exists 我也没用过几次,这语句我是凭感觉写下来的.我只知道exists后面跟的是条件,还有个对于子查询来说非常关键的子查询中的表和外面的表有建立一个关联(我个人觉得,说实话对子查询不是很熟)