SQL Server数据库多种方式查找重复记录

  • 来源: 赛迪网 作者: 若水   2008-05-04/10:55
  • SQL Server数据库多种方式查找重复记录:

    示例:表stuinfo,有三个字段recno(自增),stuid,stuname

     

    建该表的Sql语句如下:

     

    CREATE TABLE [StuInfo] (

    [recno] [int] IDENTITY (1, 1) NOT NULL ,

    [stuid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

    [stuname] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL

    ) ON [PRIMARY]

    GO

     

    1.查某一列(或多列)的重复值(只可以查出重复记录的值,不能查出整个记录的信息)

    例如:查找stuid,stuname重复的记录

    select stuid,stuname from stuinfo

    group by stuid,stuname

    having(count(*))>1

     

    2.查某一列有重复值的记录(此方法查出的是所有重复的记录,如果有两条记录重复的,就查出两条)

    例如:查找stuid重复的记录

    select * from stuinfo

    where stuid in (

    select stuid from stuinfo

    group by stuid

    having(count(*))>1

    )

     

    3.查某一列有重复值的记录(只显示多余的记录,也就是说如果有三条记录重复的,就显示两条)

    前提:需有一个不重复的列,此示例为recno。

    例如:查找stuid重复的记录

    select * from stuinfo s1

    where recno not in (

    select max(recno) from stuinfo s2

    where s1.stuid=s2.stuid


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多