CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

删除相同记录的sql语句的写法?

楼主xl_xl(我想知道)2002-04-03 15:14:42 在 MS-SQL Server / 基础类 提问

表Information中有四个字段:ID,Name,Sex,Position  
  ID为主键,现在我想查找姓名一样的记录后,删除其中的一个,我的意思是姓名相同的记录保留一条。谢谢。 问题点数:100、回复次数:18Top

1 楼icevi(按钮工厂)回复于 2002-04-03 15:21:59 得分 0

delete   from   information   t0  
  where   exist   (select   id    
                            from   information   t1    
                            where   t1.id<t0.id   and   t1.name=t0.name)Top

2 楼icevi(按钮工厂)回复于 2002-04-03 15:23:01 得分 30

写错了,长期喜欢将exists写成exist:(  
   
  delete   from   information   t0  
  where   exists   (select   id    
                            from   information   t1    
                            where   t1.id<t0.id   and   t1.name=t0.name)  
   
     
  Top

3 楼N_chow(Yukon)回复于 2002-04-03 15:49:06 得分 30

DELETE     A   From   information     A   INNER   JOIN   (Select   MIN(ID)   as   ID   ,   name   from   information     group   by   name   having   count(*)>1)   B  
  ON   A.name=b.Name   AND   A.ID<>b.IDTop

4 楼aler()回复于 2002-04-03 16:26:49 得分 0

飘香JJ你在啊,去回答一下我的问题   oSQL.Start   的详细用法好么?  
  Top

5 楼N_chow(Yukon)回复于 2002-04-03 16:32:42 得分 0

更正更正:::  
   
  我不是JJ或MM!!!!  
   
   
  請不要弄錯。Top

6 楼N_chow(Yukon)回复于 2002-04-03 16:33:15 得分 0

aler()   ,你的什麼問題???Top

7 楼rwq_(笨笨@天外有天山外有山)回复于 2002-04-03 16:41:55 得分 20

delete   information   from    
          (select   max(id)as   id,count(id)as   id_num   from   information   group   by   name   having   id_num>=2)info    
          where   information.id=info.idTop

8 楼leimin(黄山光明顶)回复于 2002-04-03 17:12:14 得分 0

同意   N_Chow(一劍飄香++)的意见。Top

9 楼Haiwer(海阔天空)回复于 2002-04-03 17:47:58 得分 0

本来在   SQL   SERVER版没有这一问的,但是贴主说以下语句出错,看不出来错在哪里,你用的什么数据库?  
   
  delete   Information  
  from   Information   a,  
  (  
  select   max(id)   as   id,Name   from   Information    
  group   by   name   having   count(*)>1  
  )   as   b  
  where   a.id<>b.id  
  and   a.name=b.nameTop

10 楼Haiwer(海阔天空)回复于 2002-04-03 17:50:07 得分 0

呵呵,飘香JJ??!!Top

11 楼N_chow(Yukon)回复于 2002-04-03 17:51:29 得分 0

海兄,不知是不是該如此:  
   
   
  delete   a                                             ---改別名  
  from   Information   a,  
  (  
  select   max(id)   as   id,Name   from   Information    
  group   by   name   having   count(*)>1  
  )   as   b  
  where   a.id<>b.id  
  and   a.name=b.nameTop

12 楼N_chow(Yukon)回复于 2002-04-03 17:53:21 得分 0

按鈕JJ的SQL好像也有類似問題。  
   
  delete     t0   from   information   t0  
  where   exists   (select   id    
                            from   information   t1    
                            where   t1.id<t0.id   and   t1.name=t0.name)  
   
  Top

13 楼Haiwer(海阔天空)回复于 2002-04-03 17:57:36 得分 0

飘香兄,那么写在SQL   SERVER没有问题的。Top

14 楼icevi(按钮工厂)回复于 2002-04-03 18:24:49 得分 0

N_Chow(一劍飄香++)   说的对,我写的确实的问题的。  
   
  收到,谢谢~~Top

15 楼zcflion(吃大白菜的鸟--菜鸟)回复于 2002-04-03 21:21:02 得分 0

各位大哥,大姐们,小弟不明白的是!!  
   
  你们写出的语句怎么知道要删除(是一张没有主键的表)哪一条,要保留哪一条呢》》??  
   
   
   
  Top

16 楼zcflion(吃大白菜的鸟--菜鸟)回复于 2002-04-03 21:21:30 得分 0

当然这里指的是两条完全相同的记录!!!Top

17 楼fredfei(飞飞)回复于 2002-04-03 23:09:20 得分 0

我怎么看着像是要把记录重复的全部删除?而不是删除掉重复的纪录部分而保留一条??Top

18 楼Haiwer(海阔天空)回复于 2002-04-04 08:25:28 得分 20

你不是说ID是主键吗,既然是主键,就不应该有两条完全相同的记录。  
  我的语句你说有错,用飘香兄改过的,以下语句查出Name有重复的记录,删除Name相同而ID不是最大的记录,也就是保留ID最大的一条记录,其他的删除。  
  delete   a                                              
  from   Information   a,  
  (  
  select   max(id)   as   id,Name   from   Information    
  group   by   name   having   count(*)>1  
  )   as   b  
  where   a.id<>b.id  
  and   a.name=b.name  
  Top

相关问题

  • sql 语句写法.
  • sql语句写法
  • sql语句写法
  • SQL语句写法。
  • sql语句写法
  • sql语句- 写法!
  • 请教SQL语句写法
  • 关于sql语句写法
  • SQL语句的 写法~~~~~~~~~
  • SQL语句的写法

关键词

  • bwhere
  • idand
  • jj
  • delete
  • from information
  • max
  • group
  • where
  • count
  • information

得分解答快速导航

  • 帖主:xl_xl
  • icevi
  • N_chow
  • rwq_
  • Haiwer

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo