但有两条完全相同的记录,想删除其中一条,不能删除,这两条记录都不能删除
如何删除这两条记录
13 个解决方案
#1
没有看明白你的详细意思,不过按照我的理解。假如是删除两条记录的其中一条的话,你可以这样:
delete from
(
select *,ps=row_number()over(order by getdate())
from table
where id='重复记录的那个id'
) a
where a.ps=2
#2
#3
delete from ( select *,ps=row_number()over(order by getdate()) from tablewhere id='重复记录的那个id') a where a.ps<>1
删除多条重复,只留下一条
删除多条重复,只留下一条
#4
yes delete 其中1条
#5
先增加一自动递增的标识列,再删除其中一行,再删除标识列
#6
用distinct的方法,把所有数据查出来(此时已经是唯一了),插入一个临时表。然后truancate源表,再把临时表的数据插回来,最后建议建立一个主键或者自增ID.
#7
都没有看懂楼主的意思么?
有两条完全相同的记录,想删除其中一条,不能删除,这两条记录都不能删除
如何删除这两条记录
这句话什么逻辑?
有两条完全相同的记录,想删除其中一条,不能删除,这两条记录都不能删除
如何删除这两条记录
这句话什么逻辑?
#8
如果是两条相同记录,没有主键。不能同时删除这两条记录,必须保留一条,那么用楼上DBA的方法。
#9
这个不行啊。有语法错误
#10
楼主的意思是两条完全相同的记录,但是没有标识列,怎么删除,如果有id就好办了,
name age
test 22
test 22
name age
test 22
test 22
#11
select distinct * into temp from tablename
delete from tablename
insert into tablename select * from temp
delete from tablename
insert into tablename select * from temp
#12
建立一个临时表过渡一下
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp1
#13
delete a from ( select *,ps=row_number()over(order by getdate()) from tablewhere id='重复记录的那个id') a where a.ps=2
#1
没有看明白你的详细意思,不过按照我的理解。假如是删除两条记录的其中一条的话,你可以这样:
delete from
(
select *,ps=row_number()over(order by getdate())
from table
where id='重复记录的那个id'
) a
where a.ps=2
#2
#3
delete from ( select *,ps=row_number()over(order by getdate()) from tablewhere id='重复记录的那个id') a where a.ps<>1
删除多条重复,只留下一条
删除多条重复,只留下一条
#4
yes delete 其中1条
#5
先增加一自动递增的标识列,再删除其中一行,再删除标识列
#6
用distinct的方法,把所有数据查出来(此时已经是唯一了),插入一个临时表。然后truancate源表,再把临时表的数据插回来,最后建议建立一个主键或者自增ID.
#7
都没有看懂楼主的意思么?
有两条完全相同的记录,想删除其中一条,不能删除,这两条记录都不能删除
如何删除这两条记录
这句话什么逻辑?
有两条完全相同的记录,想删除其中一条,不能删除,这两条记录都不能删除
如何删除这两条记录
这句话什么逻辑?
#8
如果是两条相同记录,没有主键。不能同时删除这两条记录,必须保留一条,那么用楼上DBA的方法。
#9
没有看明白你的详细意思,不过按照我的理解。假如是删除两条记录的其中一条的话,你可以这样:
SQL code?
12345678
delete from ( select *,ps=row_number()over(order by getdate()) from tablewhere id='重复记录的那个id') a where a.ps=2
这个不行啊。有语法错误
#10
楼主的意思是两条完全相同的记录,但是没有标识列,怎么删除,如果有id就好办了,
name age
test 22
test 22
name age
test 22
test 22
#11
select distinct * into temp from tablename
delete from tablename
insert into tablename select * from temp
delete from tablename
insert into tablename select * from temp
#12
建立一个临时表过渡一下
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp1
#13
没有看明白你的详细意思,不过按照我的理解。假如是删除两条记录的其中一条的话,你可以这样:
SQL code?
12345678
delete from ( select *,ps=row_number()over(order by getdate()) from tablewhere id='重复记录的那个id') a where a.ps=2
这个不行啊。有语法错误
delete a from ( select *,ps=row_number()over(order by getdate()) from tablewhere id='重复记录的那个id') a where a.ps=2