在SQL Server 7表中,除了一个字段的值不一样外其它的都一样,想删除其中一条

truelove 2000-07-26 07:18:00
请教各位编程高手
在SQL Server 7中有一个表的当中,有两条记录除了一个字段的值不一样外
其它的都一样(像这样的两条记录有许多),现在想删除其中一条,怎么办?
由于远程数据库记录很多,最好用sql语句

no title detail
01 gg hh
.. .. ..
22 gg hh
25 bb vv
26 bb vv
...
现要删除no为01和22其中一条,25和26类似.....
...全文
171 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fxx 2000-07-28
  • 打赏
  • 举报
回复
我在Oracle中是这样做的不知在SqlServer中行不行请参考:
以Emp表为例(Empno是唯一字段):
DELETE Emp WHERE ROWID <> (
SELECT MAX(ROWID) FROM Emp E WHERE Emp.Empno = E.Empno);
即可删除Emp表中Empno重复的数据而只留下一条。
如果唯一条件是多个字段将字段并在WHERE条件后即可。
pjy 2000-07-27
  • 打赏
  • 举报
回复
感觉mimosa方法可行,但如果只是删除任意一条,似乎不需要将NO列转化为数值行,应可直接使用语句。
mimosa 2000-07-27
  • 打赏
  • 举报
回复
如果no列不为数值型,可先转换为数值型

mimosa 2000-07-27
  • 打赏
  • 举报
回复
假设no列为数值型

delete from [tablename]
where no not in (select min(no) from TableName group by title,detail)

mimosa 2000-07-27
  • 打赏
  • 举报
回复
最简单的方法如下:
1.建一个表结构相同的新表.
2.创建唯一型索引(应用IGNORE_DUP_KEY选项)
如你所说的表,建唯一约束如下:
CREATE UNIQUE INDEX [INDEX_NAME] ON [TABLE_NAME](title,detail)
WITH IGNORE_DUP_KEY
3.用insert ... select命令生成新表中的行.
结果就是在新表中删除了重复行.

如果觉得有用的话,请给我加分.

yiyu 2000-07-26
  • 打赏
  • 举报
回复
You can chang one of the value of the columns that have same value, then
delete one of it.But you must write some code to reach it.I think you can do it.
TopHead 2000-07-26
  • 打赏
  • 举报
回复
任意一条吗?

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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