存档
之前博文中介绍了ASE中使用union来删除重复数据的方法:Sybase去除重复数据的一种方法!用union的方法要求先把不重复的数据行插入到临时表中,然后清空源表后再把数据倒回到源表中。
本文介绍使用索引的with ignore_dup_row选项来在线删除表的重复数据行。
创建非唯一、聚簇索引,带选项 : with ignore_dup_row
在索引的创建语法中,unique 和 with ignore_dup_row 是互斥的,nonclustered 和 with ignore_dup_row 是互斥的;也就是说,使用with ignore_dup_row选项时索引必须是非唯一、聚簇的。
通过索引删除重复数据后,再把新建的非唯一、聚簇索引删除。
sybase数据库中去除重复数据的方法有很多中,比如:identity+max(),set rowcount N 或 top N,distinct,ignore_dup_key等等。
以后花时间整理一下去除重复数据的不同方法。
今天,仅仅介绍如何使用union操作符来去除重复值。
在select命令中union all不删除重复行,而union会删除重复行。
这样的话,将包含重复行的记录通过union操作符插入到一张临时表中,然后再倒回来就行了。