﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-sealyu-文章分类-数据库</title><link>http://www.blogjava.net/sealyu/category/30739.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 10 Apr 2008 16:03:23 GMT</lastBuildDate><pubDate>Thu, 10 Apr 2008 16:03:23 GMT</pubDate><ttl>60</ttl><item><title>使用一条SQL语句删除表中重复记录（转载）</title><link>http://www.blogjava.net/sealyu/articles/192010.html</link><dc:creator>seal</dc:creator><author>seal</author><pubDate>Thu, 10 Apr 2008 14:55:00 GMT</pubDate><guid>http://www.blogjava.net/sealyu/articles/192010.html</guid><wfw:comment>http://www.blogjava.net/sealyu/comments/192010.html</wfw:comment><comments>http://www.blogjava.net/sealyu/articles/192010.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sealyu/comments/commentRss/192010.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sealyu/services/trackbacks/192010.html</trackback:ping><description><![CDATA[<div>
<p>数据库结构的脚本:<br />
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TempA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)<br />
drop table [dbo].[TempA]<br />
GO</p>
<p>CREATE TABLE [dbo].[TempA] (<br />
&nbsp;[id] [int] IDENTITY (1, 1) NOT NULL ,<br />
&nbsp;[PositionName] [varchar] (256) COLLATE Chinese_PRC_CI_AS NULL ,<br />
&nbsp;[EnglishPositionName] [varchar] (256) COLLATE Chinese_PRC_CI_AS NULL <br />
) ON [PRIMARY]<br />
GO</p>
<p>ALTER TABLE [dbo].[TempA] ADD <br />
&nbsp;CONSTRAINT [PK_TempA] PRIMARY KEY&nbsp; CLUSTERED <br />
&nbsp;(<br />
&nbsp;&nbsp;[id]<br />
&nbsp;)&nbsp; ON [PRIMARY] <br />
GO<br />
<br />
TempA表中有三个字段,id唯一且为主键,自动增长;&nbsp;PositionName,EnglishPositionName中有重复的记录,比如:<br />
id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PositionName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EnglishPositionName<br />
20&nbsp;&nbsp;&nbsp;&nbsp; 其他&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Others<br />
21&nbsp;&nbsp;&nbsp;&nbsp; 质量工程师&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QC Engineer <br />
22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其他&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Others<br />
.......<br />
100&nbsp; 质量工程师&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QC Engineer <br />
需要剔除重复的"其他","质量工程师"等记录。</p>
<p>采用的SQL语句：<br />
Delete from TempA where id not in (<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select max(t1.id) from TempA t1 group by<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t1.PositionName,t1.EnglishPositionName)<br />
<br />
说明：<br />
(1)需要剔除那几个用于判断重复的字段，则将它们放在group by语句之后。<br />
(2)max(t1.id) 也可以改成：min(t1.id) </p>
</div>
<img src ="http://www.blogjava.net/sealyu/aggbug/192010.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sealyu/" target="_blank">seal</a> 2008-04-10 22:55 <a href="http://www.blogjava.net/sealyu/articles/192010.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>