网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用JFreeChart创建基于Web的图表.
.软件测试认识中的误区.
.JBuilder2005 Struts深度体验之新.
.Column 属性.
.解决Java程序在MOTO E680i中声音.
.ParentFolder 属性.
.诊断Java代码:设计“可测试的”.
.Java更新XML的四种常用方法简介(.
.Java 学习之的对象初始化的讲究.
.用JDom轻松整合Java和XML.
.Java还是C++?.
.Java 关于中文乱码问题的解决方案.
.设计自己的printpreviewdialog.
.虚拟现实之高级技巧(五).
.在JAVA中连接Sybase数据库.
.Java算术运算符.
.头条:Webwork将加入Struts!.
.使用finally关键字来避免资源漏洞.
.使用J2ME技术实现简单的动画.
.实战 J2EE 开发购物网站 开发环境.

java中删除数据库中重复数据的几个方法

发表日期:2008-1-5



declare @max integer,@id integer
  declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1


  open cur_rows

  fetch cur_rows into @id,@max

  while fetch_status=0

  begin

 select @max = @max -1

  set rowcount @max

  delete from 表名 where 主字段 = @id

  fetch cur_rows into @id,@max

 end

close cur_rows

 set rowcount 0

  方法二

  有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分要害字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

  1、对于第一种重复,比较轻易解决,使用

 select distinct * from tableName

  就可以得到无重复记录的结果集。

  假如该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除


  select distinct * into #Tmp from tableName

  drop table tableName

  select * into tableName from #Tmp

  drop table #Tmp

  发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

  2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下

  假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集


  select identity(int,1,1) as autoID, * into #Tmp from tableName

  select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID

  select * from #Tmp where autoID in(select autoID from #tmp2)

  最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)

假如大家还有好的办法,希望您能将思路或例子与大家分享!!

上一篇:用Java类实现JavaMail发送邮件的例子 人气:930
下一篇:汉字方法名和变量名!---- 原来JAVA还可以这样用啊! 人气:722
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐