`
liuzejian4
  • 浏览: 58195 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

用SQL语句去掉重复的记录

 
阅读更多
有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用
        select   distinct   *   from   tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
        select   distinct   *   into   #Tmp   from   tableName
        drop   table   tableName
        select   *   into   tableName   from   #Tmp
        drop   table   #Tmp
发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
        假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
        select   identity(int,1,1)   as   autoID,   *   into   #Tmp   from   tableName
        select   min(autoID)   as   autoID   into   #Tmp2   from   #Tmp   group   by   Name,Address
        select   *   from   #Tmp   where   autoID   in(select   autoID   from   #tmp2)
        最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
or
With Dups as
(
    select *, row_number() over (partition by Product_Code order by Product_Code) as RowNum
    from #prod
)


Delete from Dups where rownum > 1;
分享到:
评论

相关推荐

    SQL语句去掉重复记录,获取重复记录

    SQL语句去掉重复记录,获取重复...本文介绍了如何使用SQL语句去掉重复记录、获取重复记录,并且提供了SQL Server和Access中查询所有表名和字段名的方法。这些技术可以帮助开发者和数据库管理员更好地管理和维护数据库。

    sql查询重复记录方法大全

    - 使用`SELECT DISTINCT`查询去除重复记录,并将结果存储到临时表`#Tmp`。 - 删除原始表,并将临时表中的数据重新导入到原表中。 以上是查询和处理SQL中重复记录的一些常用方法,每种方法都有其适用场景,实际应用...

    arcgis中的sql语句

    - **UNION**:用于合并两个或多个SELECT语句的结果集,并去除重复的记录。 - **EXCEPT**:用于获取第一个SELECT语句结果集中存在而第二个SELECT语句结果集中不存在的记录。 - **INTERSECT**:用于获取两个SELECT语句...

    使用SQL语句去掉重复的记录【两种方法】

    本文将介绍两种使用SQL语句去除重复记录的方法,特别适合处理大量数据的情况。 方法一:基于`MIN`或`MAX`函数和子查询 这种方法通常涉及到使用`GROUP BY`子句来分组重复的记录,然后选择每个组中的最小或最大`ID`。...

    基本的去重复sql语句

    这段SQL语句的主要作用是从`CUSTOM_INFO`表中删除重复记录,保留每组中`rowid`最大的一条记录。具体步骤如下: 1. **子查询**:`(SELECT MAX(rowid) FROM CUSTOM_INFO b WHERE a.sampleid = b.sampleid)`用来找出与...

    SQL语句表SQL语句表SQL语句表

    以下是一些SQL语句的主要部分及其用法: 1. **创建表(CREATE TABLE)**:创建一个新的数据库表,指定列名和数据类型。例如: ```sql CREATE TABLE Employees ( ID INT, Name VARCHAR(50), Age INT, Position...

    经典SQL语句大全(各种sql语句)

    3. **数据库备份**:在SQL Server中,你可以使用`sp_addumpdevice`存储过程创建备份设备,然后用`BACKUP DATABASE`语句进行数据库备份。例子中的命令创建了一个名为`testBack`的备份设备,并对`pubs`数据库进行了...

    Sql语句收藏 Sql语句收藏

    ### SQL语句一 #### 原始SQL语句: ```sql select *, (select count(0) from [picture] where album_id = [album].id) as piccount From [Album] Where id in (5,6,8,1,3,4) orderby charindex(',' + ltrim(rtrim...

    sql语句重复操作

    在SQL语句中,处理重复数据是一项常见的任务。在给定的标题和描述中,主要涉及如何找出并处理数据库表中的重复记录。这里我们将详细探讨几种不同的方法。 首先,要找出重复的记录,我们可以利用`GROUP BY`和`HAVING...

    SQL 语句 大全SQL 语句 大全

    - **UNION**: 结合两个结果集,去除重复行。 - **EXCEPT**: 返回在第一个表中存在但在第二个表中不存在的行。 - **INTERSECT**: 返回在两个表中都存在的行。 #### 外连接 - **LEFT OUTER JOIN**: 返回左表的所有...

    SQL语句集锦.rar

    去掉重复的列名.txt 取n到m条记录.txt 合并字符串.txt 多列的行转列.sql 多行补充.sql 多表对多表进行统计.txt 大小写转换.txt 子查寻和内联查寻.txt 学生名次.txt 嵌套游标的使用.txt 拷贝表格.txt 排序.txt ...

    oracle删除重复数据的sql语句

    DISTINCT关键字可以用来去除查询结果中的重复记录。 #### 创建无重复的新表 ```sql CREATE TABLE table_new AS SELECT DISTINCT * FROM table1 minux TRUNCATE TABLE table1; INSERT INTO table1 SELECT * FROM ...

    经典SQL语句大全

    你可以根据需要选择一个或多个列,还可以通过WHERE子句设置条件,使用ORDER BY进行排序,GROUP BY进行分组,HAVING进行条件过滤,以及使用DISTINCT去除重复行。 2. INSERT语句:用于向数据库表中插入新记录。指定...

    SQL语句应用大全

    SQL语句是数据库操作的核心工具,它用于查询、更新、管理数据库中的数据。在本文中,我们将深入探讨一些基本和高级的SQL语句及其应用。 首先,创建数据库是数据库管理的起点。`CREATE DATABASE`语句允许我们创建一...

    sql去掉重复的数据 完全相同的数据去掉重复 及优化

    本文将详细探讨如何利用SQL查询语句来去除表中的重复记录,并在此基础上进一步讨论如何进行性能优化。 #### 一、基本概念与背景 在实际工作中,数据库中的数据可能会因为各种原因而出现重复,例如数据录入错误、...

    常用的SQL语句.pdf

    3. **去除重复行**:`SELECT DISTINCT UserName, unit FROM WS_User`。 4. **限制返回行数**:`SELECT TOP 10 UserName, unit FROM WS_User`或`SELECT TOP 10 PERCENT UserName, unit FROM WS_User`。 5. **数据导入...

    SQLServer语句小结(SQL语句使用整理)

    SQL Server 是一种关系型数据库管理系统,它提供了丰富的SQL语句来操作和管理数据库。本文将对SQL Server中的主要语句进行总结,分为数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)三部分。 1. ...

Global site tag (gtag.js) - Google Analytics