CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

求一个消除数据重复的SQL语句(最好给出在ACCESS和SQL两种语句,谢谢),见帖内。测试正确马上结帖给分!!!!

楼主Gutta(冯大狂)2004-12-02 08:56:01 在 MS-SQL Server / 基础类 提问

譬如我有一个单词表  
   
  里面有很多单词  
  id         (自动编号)  
  word     (单词)         但是允许重复  
  mean1       第一个意思  
  mean2       第二个意思  
  thedate       入库时间  
   
   
  我现在发现数据很多单词是重复的,  
  那么就想删除这些重复的单词,但是要保留入库时间最迟的那个单词!!  
   
  这个问题,如果删除某个单词的重复记录倒是不麻烦,关键现在可能有很多重复的记录,能不能一下子通过个SQL语句来实现删除呢??~  
   
  能帮帮忙吗?谢谢 问题点数:30、回复次数:22Top

1 楼skyinfo(tiger)回复于 2004-12-02 09:00:01 得分 10

delete   from   Table1   where   id   not   in   (select   min(id)   from   Table1   group   by   [word])Top

2 楼YaoMing_csdn(姚明)回复于 2004-12-02 09:09:06 得分 5

id         (自动编号)是自動編號的,那麽入库时间越晚,id應該越大!  
  所以應該用MAX  
   
  delete   from   Table1   where   id   not   in   (select   max(id)   from   Table1   group   by   [word])  
  Top

3 楼skyinfo(tiger)回复于 2004-12-02 09:12:59 得分 0

正確Top

4 楼Gutta(冯大狂)回复于 2004-12-02 13:26:33 得分 0

正确什么正确啊??~  
   
  你这样只是删除了一个单词的重复单词吧??  
   
  我要删除的是在整个数据库中所有重复的记录都变成唯一的一个存在于数据库中。Top

5 楼YaoMing_csdn(姚明)回复于 2004-12-02 20:45:13 得分 5

你狂什么狂??~  
   
  像你这种态度都不高兴理你!无知!!Top

6 楼vinsonshen(为了明天)回复于 2004-12-02 21:56:26 得分 5

楼主,你这样就不对啦~~别人帮你解答还你这样的态度~~~这样就算别人会,别人都懒得理你了Top

7 楼guanshiyu123(就欺负你..宝)回复于 2004-12-02 23:10:50 得分 0

楼上几位的意思很对啊Top

8 楼mastersky(浪)回复于 2004-12-03 00:32:27 得分 5

楼主确实无知。  
    YaoMing_csdn(姚明)   (   )   的答案是对的:  
   
  create   table   BBB(  
  [ID]   [int]   IDENTITY   (1,   1)   NOT   NULL   ,  
                  WORD   varchar(30),  
                  Datea   datetime    
  )  
   
   
  insert   into   BBB   ([WORD],datea)    
  select   'abc','2004-12-12'  
  union  
  select   'abc','2004-12-13'  
  union    
  select   'abc','2004-12-14'  
  union    
  select   'abc','2004-12-15'  
  union    
  select   'abd','2004-12-16'  
  union    
  select   'abd','2004-12-17'  
  union    
  select   'abe','2004-12-18'  
  union    
  select   'abc','2004-12-19'  
  union    
  select   'abc','2004-12-20'  
  union    
  select   'ab','2004-12-21'  
  union    
  select   'abc','2004-12-22'  
   
  select   *   from   bbb   order   by   word  
   
  delete   from   BBB   where   id   not   in   (select   max(id)   from   BBB   group   by   [word])  
   
  select   *   from   bbb   order   by   word  
   
   
  结果:  
  删除前:  
  ID                     WORD                                                       Datea                                                                                                      
  -----------   ------------------------------   ------------------------------------------------------    
  12                     ab                                                           2004-12-21   00:00:00.000  
  13                     abc                                                         2004-12-12   00:00:00.000  
  14                     abc                                                         2004-12-13   00:00:00.000  
  15                     abc                                                         2004-12-14   00:00:00.000  
  16                     abc                                                         2004-12-15   00:00:00.000  
  17                     abc                                                         2004-12-19   00:00:00.000  
  18                     abc                                                         2004-12-20   00:00:00.000  
  19                     abc                                                         2004-12-22   00:00:00.000  
  20                     abd                                                         2004-12-16   00:00:00.000  
  21                     abd                                                         2004-12-17   00:00:00.000  
  22                     abe                                                         2004-12-18   00:00:00.000  
   
  删除后:  
  ID                     WORD                                                       Datea                                                                                                      
  -----------   ------------------------------   ------------------------------------------------------    
  12                     ab                                                           2004-12-21   00:00:00.000  
  19                     abc                                                         2004-12-22   00:00:00.000  
  21                     abd                                                         2004-12-17   00:00:00.000  
  22                     abe                                                         2004-12-18   00:00:00.000  
  Top

9 楼nickycheng(枪枪成)回复于 2004-12-03 09:08:53 得分 0

楼主不适合搞技术,一不谦虚,二不实验Top

10 楼wangjia184(我就是传说中的。。。。。。SB)回复于 2004-12-03 17:03:41 得分 0

做人要低调Top

11 楼skyinfo(tiger)回复于 2004-12-03 20:21:44 得分 0

樓主先學如何做人、再學如何做事.  
  連人都不會做,還做什麼事  
  不要再過幾年變成了:冯狂犬Top

12 楼passionke(每一步都改变未来,却只能有一种结局!)回复于 2004-12-03 20:50:13 得分 0

*^_^*!Top

13 楼huangweizhao(小菜鸟)回复于 2004-12-04 00:20:15 得分 0

:(  
  :)  
  Top

14 楼S.F.(chinasf.cnblogs.com)回复于 2004-12-04 04:16:11 得分 0

uppTop

15 楼lonever()回复于 2004-12-04 10:31:33 得分 0

恩,是的Top

16 楼Yang_(扬帆破浪)回复于 2004-12-08 10:16:19 得分 0

既然是指明入库时间最大的,应该用入库时间判断,而不应该只用id  
   
  delete   a  
  from   Table1   a  
  where   id   not   in   (select   top   1   id   from   Table1   where   [word]=a.[word]   order   by   thedate   desc,id   desc)  
   
  Top

17 楼wxq1142(游虾)回复于 2004-12-08 11:36:48 得分 0

楼上正解  
  楼主要对人尊敬Top

18 楼jilate()回复于 2004-12-08 13:09:18 得分 0

1、针对技术  
          用入库时间和id,我想效果应该是一样的,因为自动增长的字段是系统自动分配的。  
          上面的方法应该都可行  
   
  2、搂主谦虚点,虽然你的昵称为大狂,但也要谦虚,等你真正能狂的时候再狂。  
      另外还是道个歉吧。Top

19 楼xiantongsky(拼搏的小兔)回复于 2004-12-09 16:09:20 得分 0

自已摸索不也来,别人给你答案了,你还这么的狂,  
  就算是别人知道了,见到你这种态度也不会告诉你的,  
   
  兄弟,以后要谦虚一点,这样才能学到知识!!!Top

20 楼didoleo(冷月无声)回复于 2004-12-09 16:21:21 得分 0

乖乖!Top

21 楼Gutta(冯大狂)回复于 2005-01-04 15:10:49 得分 0

怎么搞的,我态度不好了吗?  
   
  晕~~  
   
  Top

22 楼Gutta(冯大狂)回复于 2005-01-27 08:49:46 得分 0

好了,好了,给分就是了~Top

相关问题

  • 求sql语句,去除重复数据
  • 查询重复sql语句怎么写
  • sql语句筛选重复问题!急!
  • 再求重复修理的sql语句
  • sql语句中变量的重复定义
  • 将重复记录提取出来(不能用SQL语句)
  • 100分:SQL语句,赐除有限重复字段的疑问!
  • 这个sql语句怎么写???过滤重复记录的
  • [求助]有关SQL语句得到重复记录!
  • 求删除表中重复记录的sql语句!!!

关键词

  • 语句
  • word
  • 重复
  • 单词
  • datea
  • 删除
  • abc
  • union
  • bbb
  • 谦虚

得分解答快速导航

  • 帖主:Gutta
  • skyinfo
  • YaoMing_csdn
  • YaoMing_csdn
  • vinsonshen
  • mastersky

相关链接

  • SQL Server类图书

广告也精彩

反馈

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