Sybase去除重复数据的一种方法

sybase数据库中去除重复数据的方法有很多中,比如:identity+max(),set rowcount N 或 top N,distinct,ignore_dup_key等等。

以后花时间整理一下去除重复数据的不同方法。

今天,仅仅介绍如何使用union操作符来去除重复值。

在select命令中union all不删除重复行,而union会删除重复行。

这样的话,将包含重复行的记录通过union操作符插入到一张临时表中,然后再倒回来就行了。

比如:对表tmp有5条记录,其中有2条重复记录。

1> select *  from tmp
2> go
 id          name
 ----------- --------------------------------------------------------
           1 sysobjects
           2 sysindexes
           3 syscolumns
           1 sysobjects
           3 syscolumns
(5 rows affected)

通过union操作符,将表tmp的记录插入到另外一张临时表tmp1中。

select * into tmp1 from tmp

union

select * from tmp where 1=2

go

1>select * into tmp1 from tmp
2>union
3>select * from tmp where 1=2
4>go
(3 rows affected)
1>select * from tmp1
2>go
 id          name
----------- --------------------------------------------------------
           1 sysobjects
           2 sysindexes
           3 syscolumns
(3 rows affected)

再将临时表tmp1的数据倒回tmp就完成去除重复数据的工作。

  • 本文链接地址:http://www.dbainfo.net/an-sybase-method-to-remove-same-records.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《Sybase去除重复数据的一种方法》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
  • 目前还没有任何评论.
    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)