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

去掉重复行

楼主piaopiao2005()2005-05-09 14:45:18 在 MS-SQL Server / 应用实例 提问

各位高手们,我在修改着一个SQL语句,是这样的  
  select   K0101,D0302,D0321,D0322,K0102,K0103,K0104,  
  (select   vDepot02   from   vDepot   where   vDepot01=(left(K0105,  
  (select   K0703   from   K07   where   K0701=K0101))   +   left('0000000000000000000000',  
  (select   K0704   from   K07   where   K0701=K0101)-len(left(K0105,  
  (select   K0703   from   K07   where   K0701=K0101))))))   K0105,K0110,K0111,case   when   K0116='01'   then    
  (select   A0503   from   A05   where   A0502=K0115)   else   (select   D2202   from   D22   where   D2201=K0115)   end   K0115,case    
  when   K0116='01'   then   '生产'   else   '采购'   end   K0116   from   K01   inner   join   D03   on   D0301=K0101    
  where   1=1   order   by   K01.ID   desc  
   
  现在数据库中有一些重复的数据(如K07中,或者还有其它的表中),结果就出了问题,现在想要把数据库中的一些重复数据除掉,我怎么也搞不好啊。我试着用distinct也没做对,有哪位能帮我看看,谢谢了!!!  
  问题点数:20、回复次数:12Top

1 楼winternet(冬天)回复于 2005-05-09 15:02:15 得分 0

搜索一下,很多例子!Top

2 楼xxljd(闪)回复于 2005-05-09 15:46:47 得分 5

http://tech.sina.com.cn/s/2004-10-22/1012444979.shtml  
   
   
  给你参考!呵呵Top

3 楼xxljd(闪)回复于 2005-05-09 15:49:09 得分 5

SQL   Server中有一种更为简单的方法,它不需要用游标,只要写一句简单插入语句就能实现删除重复记录的功能。为了能清楚地表述,我们首先假设存在一个产品信息表Products,其表结构如下:  
   
  CREATE   TABLE   Products   (  
  ProductID   int,  
  ProductName   nvarchar   (40),  
  Unit   char(2),  
  UnitPrice   money  
  )    
  第一板斧——建立一张具有相同结构的临时表  
   
  CREATE   TABLE   Products_temp   (  
  ProductID   int,  
  ProductName   nvarchar   (40),  
  Unit   char(2),  
  UnitPrice   money  
  )    
  第二板斧——为该表加上索引,并使其忽略重复的值  
   
    方法是在企业管理器中找到上面建立的临时表Products   _temp,单击鼠标右键,选择所有任务,选择管理索引,  
  第三板斧——拷贝产品信息到临时表  
   
  insert   into   Products_temp   Select   *   from   Products    
  第四板斧——将新的数据导入原表  
   
    将原产品信息表Products清空,并将临时表Products_temp中数据导入,最后删除临时表Products_temp。  
   
  delete   Products  
  insert   into   Products   select   *   from   Products_temp  
  drop   table   Products_temp    
   
    这样就完成了对表中重复记录的删除。无论表有多大,它的执行速度都是相当快的,而且因为几乎不用写语句,所以它也是很安全的。  
   
   
  Top

4 楼cutelion(MADEinCNNC)回复于 2005-05-09 16:03:05 得分 0

高招啊!Top

5 楼qudymeteor(流星)回复于 2005-05-09 16:38:30 得分 5

select   distinct   AA.K0101,AA.D0302,AA.D0321,AA.D0322,AA.K0102,AA.K0103,AA.K0104,AA.K0105  
  AA.K0110,AA.K0111,AA.K0115  
  (  
  select   K0101,D0302,D0321,D0322,K0102,K0103,K0104,  
  (select   vDepot02   from   vDepot   where   vDepot01=(left(K0105,  
  (select   K0703   from   K07   where   K0701=K0101))   +   left('0000000000000000000000',  
  (select   K0704   from   K07   where   K0701=K0101)-len(left(K0105,  
  (select   K0703   from   K07   where   K0701=K0101))))))   K0105,K0110,K0111,case   when   K0116='01'   then   (select   A0503   from   A05   where   A0502=K0115)   else   (select   D2202   from   D22   where   D2201=K0115)   end   K0115,case   when   K0116='01'   then   '生产'   else   '采购'   end   K0116  
  from   K01   inner   join   D03   on   D0301=K0101    
  where   1=1  
  )AA  
  --order   by   K01.ID   descTop

6 楼TOMATOTO(蓝蓝)回复于 2005-05-09 16:40:32 得分 0

闪的方法不错,之前有很多帖子,找找吧Top

7 楼piaopiao2005()回复于 2005-05-09 18:51:38 得分 0

有没有在我的那条语句上进行修改的,我现在不可能再去建表啊,能不能有更直接的办法啊!!!Top

8 楼78hgdong(赤脚)回复于 2005-05-09 22:24:19 得分 0

老大,建临时表很久吗?Top

9 楼piaopiao2005()回复于 2005-05-09 22:44:03 得分 0

数据在不段的增加,表也在增加,现在表中少说有几十万条数据,如果有很多的表中都有重复行我启不是每个表都要建,你想这样维护容易吗?我想哪位能跟我说说用像视图之类的方法,我会很感激的.Top

10 楼piaopiao2005()回复于 2005-05-10 10:13:10 得分 0

难道就没有人可以帮我看看吗?分少可以加分的哦,我现在的报错是在查询的时候多了一个值。这个现在怎么解决啊?Top

11 楼xxljd(闪)回复于 2005-05-11 08:54:34 得分 0

建一个临时表而已啊     然后你把那些数据倒进去就可以了   复制啊         你仔细看啊   那个方法不错的  
  都是用复制的     只是建一个表格而已啊Top

12 楼laron(狂野之城)回复于 2005-05-12 17:16:43 得分 5

你可以等到表数据不在更新时,再运用   xxljd(闪)   的方法去做吧。干脆你就断开网络,先处理完再恢复网络吧。Top

相关问题

  • 奇怪的问题,真样去掉 DataGrid中的重复行?
  • 新年第一个问题!怎样去掉重复的行!
  • 去掉重复数据,
  • 使用Merge合并数据集后,如何去掉重复的行???
  • 如何去掉DDDW中的重复值?
  • 关于怎样去掉重复数据?
  • 如何去掉combobox里重复的数?
  • 去掉数组中的重复值
  • sql server 2000 中去掉重复值
  • union后怎么去掉重复记录?

关键词

  • 数据
  • 语句
  • 信息
  • 表
  • vdepot
  • 板斧
  • aa
  • 临时
  • 删除
  • 方法

得分解答快速导航

  • 帖主:piaopiao2005
  • xxljd
  • xxljd
  • qudymeteor
  • laron

相关链接

  • SQL Server类图书

广告也精彩

反馈

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