<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sybase数据库技术，数据库恢复专家 &#187; 重复值</title>
	<atom:link href="http://www.dbainfo.net/tag/%e9%87%8d%e5%a4%8d%e5%80%bc/feed" rel="self" type="application/rss+xml" />
	<link>https://www.dbainfo.net</link>
	<description>提供Sybase ASE及Sybase SQL Anywhere数据库修复服务，电话：13811580958(微信)，QQ：289965371！We have many years of experience in recovering data from damanged Sybase devices. Contact us by Phone: +86 13811580958 Wechat: 13811580958 Email: 289965371@qq.com</description>
	<lastBuildDate>Sat, 14 Jun 2025 16:28:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ASE使用with ignore_dup_row删除重复数据</title>
		<link>https://www.dbainfo.net/delete-duplicate-row-by-ignore_dup_row_option.htm</link>
		<comments>https://www.dbainfo.net/delete-duplicate-row-by-ignore_dup_row_option.htm#comments</comments>
		<pubDate>Tue, 09 Dec 2014 15:52:25 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[重复值]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=2614</guid>
		<description><![CDATA[之前博文中介绍了ASE中使用union来删除重复数据的方法：Sybase去除重复数据的一种方法！用union的方法要求先把不重复的数据行插入到临时表中，然后清空源表后再把数据倒回到源表中。 本文介绍使用索引的with ignore_dup_row选项来在线删除表的重复数据行。 创建非唯一、聚簇索引，带选项 : with ignore_dup_row 在索引的创建语法中，unique 和&#160; with ignore_dup_row 是互斥的，nonclustered 和&#160; with ignore_dup_row 是互斥的；也就是说，使用with ignore_dup_row选项时索引必须是非唯一、聚簇的。 通过索引删除重复数据后，再把新建的非唯一、聚簇索引删除。 下面演示创建过程及注意问题： --创建表 create table DeleteDuplicateRow(id int , name varchar(30) , begin_time datetime ) go create index idx_DeleteDuplicateRow on DeleteDuplicateRow(id , name) go --插入测试数据 insert into DeleteDuplicateRow values(1,&#39;www.dbainfo.net&#39;,&#39;2014-5-5 14:30&#39;) go insert into DeleteDuplicateRow values(2,&#39;Sybase数据库技术,数据库恢复&#39;,&#39;2014-8-17 1:20&#39;) go insert into [...]]]></description>
			<content:encoded><![CDATA[<p>之前博文中介绍了ASE中使用union来删除重复数据的方法：<a href="https://www.dbainfo.net/an-sybase-method-to-remove-same-records.htm" target="_blank">Sybase去除重复数据的一种方法！</a>用union的方法要求先把不重复的数据行插入到临时表中，然后清空源表后再把数据倒回到源表中。</p>
<p>本文介绍使用索引的with ignore_dup_row选项来在线删除表的重复数据行。</p>
<p>创建非唯一、聚簇索引，带选项 : with ignore_dup_row<br />
	在索引的创建语法中，unique 和&nbsp; with ignore_dup_row 是互斥的，nonclustered 和&nbsp; with ignore_dup_row 是互斥的；也就是说，使用with ignore_dup_row选项时索引必须是非唯一、聚簇的。<br />
	通过索引删除重复数据后，再把新建的非唯一、聚簇索引删除。<span id="more-2614"></span></p>
<p>下面演示创建过程及注意问题：</p>
<blockquote>
<p>--创建表<br />
		create table DeleteDuplicateRow(id int <br />
		, name varchar(30) <br />
		, begin_time datetime<br />
		)<br />
		go<br />
		create index idx_DeleteDuplicateRow on DeleteDuplicateRow(id , name)<br />
		go</p>
<p>		--插入测试数据<br />
		insert into DeleteDuplicateRow values(1,&#39;www.dbainfo.net&#39;,&#39;2014-5-5 14:30&#39;)<br />
		go<br />
		insert into DeleteDuplicateRow values(2,&#39;Sybase数据库技术,数据库恢复&#39;,&#39;2014-8-17 1:20&#39;)<br />
		go<br />
		insert into DeleteDuplicateRow values(3,&#39;分享Sybase数据库知识&#39;,&#39;2014-9-11 8:54&#39;)<br />
		go</p>
<p>		1&gt; select * from DeleteDuplicateRow<br />
		2&gt; go<br />
		&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name&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; begin_time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;----------- ------------------------------ ------------------------------- <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 www.dbainfo.net&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; May&nbsp; 5 2014&nbsp; 2:30PM <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 Sybase数据库技术,数据庠&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aug 17 2014&nbsp; 1:20AM <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 分享Sybase数据库知识&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sep 11 2014&nbsp; 8:54AM </p>
<p>		(3 rows affected)</p>
<p>		--从自身循环插入2次<br />
		1&gt; insert into DeleteDuplicateRow<br />
		2&gt; select * from DeleteDuplicateRow <br />
		3&gt; go 2</p>
<p>		--总行数：12<br />
		1&gt; select count(*) from DeleteDuplicateRow<br />
		2&gt; go</p>
<p>		--因为ASE要求一张表上最多只能有一个聚簇索引，所以先检查表上是否存在聚簇索引：<br />
		1&gt; sp_helpindex DeleteDuplicateRow<br />
		2&gt; go<br />
		Object has the following indexes<br />
		&nbsp;<br />
		&nbsp;index_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_keys index_description index_max_rows_per_page index_fillfactor index_reservepagegap index_created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_local&nbsp; <br />
		&nbsp;---------------------- ---------- ----------------- ----------------------- ---------------- -------------------- ------------------- ------------ <br />
		<span style="color:#00f;">&nbsp;idx_DeleteDuplicateRow&nbsp; id, name&nbsp; nonclustered&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; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 Dec&nbsp; 9 2014 11:10PM Global Index </span></p>
<p>		(1 row affected)<br />
		&nbsp;index_ptn_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_ptn_seg <br />
		&nbsp;-------------------------------- ------------- <br />
		&nbsp;idx_DeleteDuplicateRow_766902983 default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>		(1 row affected)<br />
		--发现表上只有一个非唯一、非聚簇索引：idx_DeleteDuplicateRow，可以不管这个索引。</p>
<p>
		--如果使用with ignore_dup_row时不加clustered会报错：<br />
		1&gt; create index clu_DeleteDuplicateRow on DeleteDuplicateRow(id , name , begin_time) with ignore_dup_row <br />
		2&gt; go<br />
		Msg 1916, Level 16, State 3:<br />
		Server &#39;CENTOS5&#39;, Line 1:<br />
		CREATE INDEX options nonclustered and ignore_dup_row are mutually exclusive.</p>
<p>		--创建表DeleteDuplicateRow上所有列的非唯一、聚簇索引：clu_DeleteDuplicateRow<br />
		1&gt; <span style="font-size:14px;"><span style="color: rgb(255, 0, 0);">create clustered index clu_DeleteDuplicateRow on DeleteDuplicateRow(id , name , begin_time) with ignore_dup_row </span></span><br />
		2&gt; go<br />
		Warning: deleted duplicate row.&nbsp; Primary key is &#39;1, &quot;www.dbainfo.net&quot;, &quot;May&nbsp; 5 2014&nbsp; 2:30:00:000PM&quot;&#39;<br />
		Warning: deleted duplicate row.&nbsp; Primary key is &#39;1, &quot;www.dbainfo.net&quot;, &quot;May&nbsp; 5 2014&nbsp; 2:30:00:000PM&quot;&#39;<br />
		Warning: deleted duplicate row.&nbsp; Primary key is &#39;1, &quot;www.dbainfo.net&quot;, &quot;May&nbsp; 5 2014&nbsp; 2:30:00:000PM&quot;&#39;<br />
		Warning: deleted duplicate row.&nbsp; Primary key is &#39;2, &quot;Sybase数据库技术,数据庢, &quot;Aug 17 2014&nbsp; 1:20:00:000AM&quot;&#39;<br />
		Warning: deleted duplicate row.&nbsp; Primary key is &#39;2, &quot;Sybase数据库技术,数据庢, &quot;Aug 17 2014&nbsp; 1:20:00:000AM&quot;&#39;<br />
		Warning: deleted duplicate row.&nbsp; Primary key is &#39;2, &quot;Sybase数据库技术,数据庢, &quot;Aug 17 2014&nbsp; 1:20:00:000AM&quot;&#39;<br />
		Warning: deleted duplicate row.&nbsp; Primary key is &#39;3, &quot;分享Sybase数据库知识&quot;, &quot;Sep 11 2014&nbsp; 8:54:00:000AM&quot;&#39;<br />
		Warning: deleted duplicate row.&nbsp; Primary key is &#39;3, &quot;分享Sybase数据库知识&quot;, &quot;Sep 11 2014&nbsp; 8:54:00:000AM&quot;&#39;<br />
		Warning: deleted duplicate row.&nbsp; Primary key is &#39;3, &quot;分享Sybase数据库知识&quot;, &quot;Sep 11 2014&nbsp; 8:54:00:000AM&quot;&#39;<br />
		Non-clustered index (index id = 2) is being rebuilt.</p>
<p>		--查看表DeleteDuplicateRow上的索引情况，包含：非唯一、非聚簇索引，非唯一、聚簇索引<br />
		1&gt; sp_helpindex DeleteDuplicateRow<br />
		2&gt; go<br />
		Object has the following indexes<br />
		&nbsp;<br />
		&nbsp;index_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_keys&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_max_rows_per_page index_fillfactor index_reservepagegap index_created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_local&nbsp; <br />
		&nbsp;---------------------- --------------------- -------------------------------- ----------------------- ---------------- -------------------- ------------------- ------------ <br />
		&nbsp;clu_DeleteDuplicateRow&nbsp; id, name, begin_time clustered, ignore duplicate rows&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 Dec&nbsp; 9 2014 11:46PM Global Index <br />
		&nbsp;<span style="color:#00f;">idx_DeleteDuplicateRow&nbsp; id, name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nonclustered&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 Dec&nbsp; 9 2014 11:10PM Global Index </span></p>
<p>		(2 rows affected)<br />
		&nbsp;index_ptn_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_ptn_seg <br />
		&nbsp;--------------------------------- ------------- <br />
		&nbsp;clu_DeleteDuplicateRow_1230904636 default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;idx_DeleteDuplicateRow_1230904636 default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>		(2 rows affected)<br />
		(return status = 0)</p>
<p>		--删除刚才创建的非唯一、聚簇索引：clu_DeleteDuplicateRow<br />
		1&gt;drop index DeleteDuplicateRow.clu_DeleteDuplicateRow<br />
		2&gt;go</p>
<p>		--查看表DeleteDuplicateRow上的索引情况<br />
		1&gt; sp_helpindex DeleteDuplicateRow<br />
		2&gt; go<br />
		Object has the following indexes<br />
		&nbsp;<br />
		&nbsp;index_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_keys index_description index_max_rows_per_page index_fillfactor index_reservepagegap index_created&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_local&nbsp; <br />
		&nbsp;---------------------- ---------- ----------------- ----------------------- ---------------- -------------------- ------------------- ------------ <br />
		&nbsp;<span style="color:#00f;">idx_DeleteDuplicateRow&nbsp; id, name&nbsp; nonclustered&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; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 Dec&nbsp; 9 2014 11:10PM Global Index </span></p>
<p>		(1 row affected)<br />
		&nbsp;index_ptn_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index_ptn_seg <br />
		&nbsp;--------------------------------- ------------- <br />
		&nbsp;idx_DeleteDuplicateRow_1230904636 default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>		(1 row affected)<br />
		(return status = 0)</p>
<p>		--最后验证一下删除重复行之后的数据<br />
		1&gt; select * from DeleteDuplicateRow<br />
		2&gt; go<br />
		&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name&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; begin_time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
		&nbsp;----------- ------------------------------ ------------------------------- <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 www.dbainfo.net&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; May&nbsp; 5 2014&nbsp; 2:30PM <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 Sybase数据库技术,数据庠&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aug 17 2014&nbsp; 1:20AM <br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 分享Sybase数据库知识&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sep 11 2014&nbsp; 8:54AM </p>
<p>		(3 rows affected)<br />
		--EOF--</p>
</blockquote>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/delete-duplicate-row-by-ignore_dup_row_option.htm">https://www.dbainfo.net/delete-duplicate-row-by-ignore_dup_row_option.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/delete-duplicate-row-by-ignore_dup_row_option.htm">ASE使用with ignore_dup_row删除重复数据</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2012-03-21 -- <a href="https://www.dbainfo.net/an-sybase-method-to-remove-same-records.htm" title="Sybase去除重复数据的一种方法">Sybase去除重复数据的一种方法</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/delete-duplicate-row-by-ignore_dup_row_option.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sybase去除重复数据的一种方法</title>
		<link>https://www.dbainfo.net/an-sybase-method-to-remove-same-records.htm</link>
		<comments>https://www.dbainfo.net/an-sybase-method-to-remove-same-records.htm#comments</comments>
		<pubDate>Wed, 21 Mar 2012 13:42:21 +0000</pubDate>
		<dc:creator>dbainfo</dc:creator>
				<category><![CDATA[Sybase ASA]]></category>
		<category><![CDATA[Sybase ASE]]></category>
		<category><![CDATA[ASE]]></category>
		<category><![CDATA[sybase]]></category>
		<category><![CDATA[union]]></category>
		<category><![CDATA[重复值]]></category>

		<guid isPermaLink="false">http://www.dbainfo.net/?p=1884</guid>
		<description><![CDATA[sybase数据库中去除重复数据的方法有很多中，比如：identity+max()，set rowcount N 或 top N，distinct，ignore_dup_key等等。 以后花时间整理一下去除重复数据的不同方法。 今天，仅仅介绍如何使用union操作符来去除重复值。 在select命令中union all不删除重复行，而union会删除重复行。 这样的话，将包含重复行的记录通过union操作符插入到一张临时表中，然后再倒回来就行了。 比如：对表tmp有5条记录，其中有2条重复记录。 1&#62; select *&#160; from tmp 2&#62; go &#160;id&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; name &#160;----------- -------------------------------------------------------- &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 1 sysobjects &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2 sysindexes &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3 syscolumns &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 1 sysobjects &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3 syscolumns (5 rows affected) 通过union操作符，将表tmp的记录插入到另外一张临时表tmp1中。 select * into tmp1 from tmp union select * from tmp where 1=2 [...]]]></description>
			<content:encoded><![CDATA[<p>sybase数据库中去除重复数据的方法有很多中，比如：identity+max()，set rowcount N 或 top N，distinct，ignore_dup_key等等。</p>
<p>以后花时间整理一下去除重复数据的不同方法。</p>
<p>今天，仅仅介绍如何使用union操作符来去除重复值。</p>
<p>在select命令中union all不删除重复行，而union会删除重复行。</p>
<p>这样的话，将包含重复行的记录通过union操作符插入到一张临时表中，然后再倒回来就行了。<span id="more-1884"></span></p>
<p>比如：对表tmp有5条记录，其中有2条重复记录。</p>
<blockquote>
<p>1&gt; select *&nbsp; from tmp<br />
		2&gt; go<br />
		&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name<br />
		&nbsp;----------- --------------------------------------------------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 sysobjects<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 sysindexes<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 syscolumns<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 sysobjects<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 syscolumns<br />
		(5 rows affected)</p>
</blockquote>
<p>通过union操作符，将表tmp的记录插入到另外一张临时表tmp1中。</p>
<p><span style="font-size:12px;"><span style="color: rgb(255, 0, 0);"><strong>select * into tmp1 from tmp<br />
	</strong></span></span></p>
<p><span style="font-size:12px;"><span style="color: rgb(255, 0, 0);"><strong>union<br />
	</strong></span></span></p>
<p><span style="font-size:12px;"><span style="color: rgb(255, 0, 0);"><strong>select * from tmp where 1=2<br />
	</strong></span></span></p>
<p><span style="font-size:12px;"><span style="color: rgb(255, 0, 0);"><strong>go<br />
	</strong></span></span></p>
<blockquote>
<p>1&gt;select * into tmp1 from tmp<br />
		2&gt;union<br />
		3&gt;select * from tmp where 1=2<br />
		4&gt;go<br />
		(3 rows affected)<br />
		1&gt;select * from tmp1<br />
		2&gt;go<br />
		&nbsp;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name<br />
		----------- --------------------------------------------------------<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 sysobjects<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 sysindexes<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 syscolumns<br />
		(3 rows affected)</p>
</blockquote>
<p>再将临时表tmp1的数据倒回tmp就完成去除重复数据的工作。</p>
<div style="clear: both; margin: 10px 0pt; border: 1px dashed rgb(153, 153, 153); font-size: 12px; padding: 5px 10px;">
<li>本文链接地址：<a href="https://www.dbainfo.net/an-sybase-method-to-remove-same-records.htm">https://www.dbainfo.net/an-sybase-method-to-remove-same-records.htm</a>；</li>
<li>本文为dbainfo个人原创，请在尊重作者劳动成果的前提下进行转载；</li>
<li>转载务必注明原始出处 : <a href="https://www.dbainfo.net/">Sybase数据库技术，数据库恢复专家</a>；</li>
<li>对《<a href="https://www.dbainfo.net/an-sybase-method-to-remove-same-records.htm">Sybase去除重复数据的一种方法</a>》有何疑问或见解，请在本文下方发表；</li>
<li>对网站还有其他问题或建议，请提交在<a href="https://www.dbainfo.net/messages" target="_blank">留言板</a>，谢谢！</li>
</div>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2019-04-12 -- <a href="https://www.dbainfo.net/sybase-ase-asa-recovery-service.htm" title="Sybase ASE及SQL Anywhere数据库修复专家">Sybase ASE及SQL Anywhere数据库修复专家</a> (0)</li><li>2013-09-16 -- <a href="https://www.dbainfo.net/select-random-rows-from-table.htm" title="ASE从表中随机选择数据的三种方法">ASE从表中随机选择数据的三种方法</a> (0)</li><li>2013-09-08 -- <a href="https://www.dbainfo.net/get-current-running-sql.htm" title="查看ASE v15正在执行的SQL语句内容">查看ASE v15正在执行的SQL语句内容</a> (0)</li><li>2013-05-23 -- <a href="https://www.dbainfo.net/rename-sybase-ase-servername.htm" title="修改ASE的服务器名称">修改ASE的服务器名称</a> (0)</li><li>2012-04-11 -- <a href="https://www.dbainfo.net/ase-alter-table-modify-column-default-value.htm" title="ASE修改列的默认值属性">ASE修改列的默认值属性</a> (0)</li><li>2019-04-11 -- <a href="https://www.dbainfo.net/sql-server-recovery-service.htm" title="SQL Server 数据库修复专家SQLRescue">SQL Server 数据库修复专家SQLRescue</a> (0)</li><li>2015-01-16 -- <a href="https://www.dbainfo.net/one-way-to-recover-master-configuration-area.htm" title="master数据库配置区域(configuration area)损坏的一种修复方法">master数据库配置区域(configuration area)损坏的一种修复方法</a> (1)</li><li>2014-12-09 -- <a href="https://www.dbainfo.net/delete-duplicate-row-by-ignore_dup_row_option.htm" title="ASE使用with ignore_dup_row删除重复数据">ASE使用with ignore_dup_row删除重复数据</a> (1)</li><li>2014-10-10 -- <a href="https://www.dbainfo.net/ase-object-name-length-limit.htm" title="ASE对象名称长度限制">ASE对象名称长度限制</a> (0)</li><li>2014-06-09 -- <a href="https://www.dbainfo.net/count_all_tables_rowcount.htm" title="统计用户数据库内所有表的行数">统计用户数据库内所有表的行数</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>https://www.dbainfo.net/an-sybase-method-to-remove-same-records.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
