sql:两条完全相同的数据怎么用sql语句删除一条??

laoyingisme 2010-08-13 01:31:42
RT
...全文
1947 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveyan924 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 alifriend 的回复:]
没有主键又出现完全相同数据的表是怎么设计出来的?
[/Quote]



就是啊,,,,晕了。。。。。。。。。。。。。
wkd04 2010-08-13
  • 打赏
  • 举报
回复
delete top 1 from table
yingoing 2010-08-13
  • 打赏
  • 举报
回复
下班 后回去 看看
波导终结者 2010-08-13
  • 打赏
  • 举报
回复
没有主键又出现完全相同数据的表是怎么设计出来的?
xuan.ye 2010-08-13
  • 打赏
  • 举报
回复
SQL 的标准面试问题
wensi121 2010-08-13
  • 打赏
  • 举报
回复
会员数据需要用到的是下面三个字段:ID(自增),MemberName,MemberAddress.只要会员姓名与会员地址相同就认为是重复记录,重复记录在删除时只保留ID最大的那个.SQL如下:
delete MemberInfo where ID not in (
select max(ID) from MemberInfo group by MemberName, MemberAddress)
not in的效率可能会低些,但因为是直接操作数据库,所以这并不重要.这个句子还是非常的简单有效的.

在真正的删除操作前,通常会先了解一下重复记录的情况.可以使用下面的句子:
SELECT COUNT(MemberName) AS TheCount, MemberName, MemberAddress
FROM MemberInfo
GROUP BY MemberName, MemberAddress
HAVING (COUNT(*) > 1)
zilingyumengchwhj 2010-08-13
  • 打赏
  • 举报
回复
tackey86 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chenzhuo 的回复:]
select distinct * into #a from table1 where 条件

delete table1 where 删除这两条记录的条件

insert into table1
select * from #a

drop table #a
[/Quote]

这是个办法
laoyingisme 2010-08-13
  • 打赏
  • 举报
回复
看来只有硬删了,再insert了
cyhcyhhychyc 2010-08-13
  • 打赏
  • 举报
回复
有意思的问题,看起来简单,还真不是那么好做的
脾气不坏 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xiaowx2000 的回复:]

这个表没有主键么?有主键的话 删 PK = SELECT top 1 PK 就行
如果没有的话。只能放一条进临时表。删两天再加一条了
[/Quote]

+1
xiaowx2000 2010-08-13
  • 打赏
  • 举报
回复
这个表没有主键么?有主键的话 删 PK = SELECT top 1 PK 就行
如果没有的话。只能放一条进临时表。删两天再加一条了
wuyq11 2010-08-13
  • 打赏
  • 举报
回复
delete a from tb a where exists(select 1 from tb where name=a.name and ID<a.ID)
delete from tb where id not in (select min(id) from tb b where name=tb.name)
「已注销」 2010-08-13
  • 打赏
  • 举报
回复
SQL SERVER里,只有将相同的全部删掉,然后再插入,open table也是不可以的。
jaykahn 2010-08-13
  • 打赏
  • 举报
回复
distinct
Ants2002 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chenzhuo 的回复:]
select distinct * into #a from table1 where 条件

delete table1 where 删除这两条记录的条件

insert into table1
select * from #a

drop table #a
[/Quote]
这个方法可以
一切为了你 2010-08-13
  • 打赏
  • 举报
回复
select distinct * from tab
zxqiangwhere 2010-08-13
  • 打赏
  • 举报
回复
Ntext类型的字段是不可以用sql的聚合函数的
楼主可以将Ntext换成NvarChar(200)的类型
laoyingisme 2010-08-13
  • 打赏
  • 举报
回复
有一个表转换成功,另外有一个不能有Distinct因为有字段的数据类型是Ntext.
ERROR MESSAGE:
Msg 421, Level 16, State 1, Line 1
The ntext data type cannot be selected as DISTINCT because it is not comparable.
hitlcyu19 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chenzhuo 的回复:]

select distinct * into #a from table1 where 条件

delete table1 where 删除这两条记录的条件

insert into table1
select * from #a

drop table #a
[/Quote]
这个好 呵呵
加载更多回复(4)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧