`

SQL中删除重复记录的N种方法

 
阅读更多
最近温习了一下如何在SQL中删除复生记录,感觉挺有趣。现将自己总结的几条方法归纳如下:

“重复记录”有两种意义,一种是表中的所有记录完全复复,(即表中的字段均重复),一种是表中的个别字段重复

   1,对第一种重复,比较好解决

    SELECT DISTINCT * FROM TABLENAME

    可以复到无重复的记录

    如果要删除多余的重复记录(只保留重复记录的一条记录),可以按下列方法操作

    SELECT DISTINCT * INTO #TEMP FROM TABLENAME

    DROP TABLE TABLENAME

    SELECT * INTO TABLENAME FROM #TEMP

    DROP TABLE #TEMP

   出现这种问题是因为表的设计不周完,增加唯一性索引即可

  2,个别字段的重复,如下

         ID  NAME  VALUE
         1    A     PP
         2    A     PP
         3    B     II
         4    B     PP
         5    B     PP
         6    C     PP
         7    C     PP
         8    C     II
   想要得到这样的结果
         ID  NAME  VALUE
         1    A     PP
         3    B     II
         4    B     PP
         6    C     PP
         8    C     II
     方法1
  DELETE TABLENAME WHERE ID NOT IN
(SELECT MAX(ID) FROM TABLENAME GROUP BY NAME,VALUE HAVING COUNT(*)>1)
  方法2
   DELETE  A  FROM TABLENAME A LEFT JOIN
  (SELECT ID=MIN(ID) FROM TABLENAME GROUP BY NAME,VALUE ) B ON A.ID=B.ID WHERE B.ID IS NULL

后续如有更好的例子,继续添加.........
分享到:
评论

相关推荐

    用SQL删除重复记录的N种方法

    以上介绍了多种使用SQL删除重复记录的方法,每种方法都有其适用场景和特点。在选择具体方法时,需要考虑数据库的类型、数据量大小以及性能要求等因素。通过合理选择合适的方法,可以有效提高数据清理的效率和准确性...

    在SQL中删除重复记录多种方法

    在SQL中删除重复记录是一个常见的需求,特别是在处理大型数据集时。本文将介绍几种有效的方法,以帮助你在遇到重复记录问题时能有效地清理数据。我们将以Oracle数据库为例,但这些方法在其他SQL数据库系统中也具有...

    oracle快速删除重复的记录

    本文总结了四种删除重复记录的方法,每种方法都有其优缺点。 方法一:通过创建临时表 这种方法可以实现删除重复记录,但是它的效率非常低,特别是在大型数据表中。创建临时表,导入数据,然后删除原表的数据,再将...

    SQL Server数据库删除数据集中重复数据实例讲解

    总结一下,SQL Server中删除重复数据通常涉及对数据进行分组,然后根据分组的结果选择保留或删除。在本例中,我们利用窗口函数ROW_NUMBER()进行分组并排序,确保在每个重复组中只保留一个记录。这种方法在处理大数据...

    DB2 SQL 消息

    - **SQL0121N:** 表示同一SQL语句中相同变量重复赋值。 - **SQL0122N:** 表示`SELECT`语句中缺少`GROUP BY`子句。 - **SQL0123N:** 表示表达式中缺少操作符。 - **SQL0125N:** 表示`ORDER BY`子句中缺少有效的排序键...

    用SQL语句添加删除修改字段及一些表与字段的基本操作

    不同数据库系统中随机读取记录的方法有所不同: - **Access**:`SELECT top 10 * From 表名 ORDER BY Rnd(id)` - **SQL Server**:`SELECT top n * from 表名 ORDER BY NEWID()` - **MySQL**:`SELECT * From 表名 ...

    java笔记\Oracle里sql不能用limit的处理

    Minus运算符可以用来删除重复的记录,我们可以使用它来删除前面的记录,从而实现分页查询。 例如,以下SQL语句可以查询表t_table_name的第11-20条记录: ```sql SELECT t_col1,t_col2 FROM t_table_name WHERE ...

    Visual FoxPro中SQL命令语法及示例

    删除表中的记录可以用以下命令: ```sql DELETE FROM 课程 WHERE 课程号 = 1; ``` #### 8. 数据查询 (SELECT) - **8.1 Select命令各子句执行顺序** SELECT命令的执行顺序通常为FROM -> WHERE -> GROUP BY -...

    经典SQL脚本大全

    │ │ 6.1.2 多表联结导致记录重复的示例.sql │ │ 6.1.3 使用UNION实现库存报表的示例.sql │ │ 6.1.5 按指定上下限区间进行数据统计的示例.sql │ │ 6.1.6 随机出题的示例.sql │ │ 6.2.1 ROLLUP实现的分级...

    学习SQL应知道的动态SQL语句基本语法 mssql

    在SQL世界中,动态SQL(Dynamic SQL)是一种强大的技术,特别是在复杂的数据库操作和程序设计中。在Microsoft SQL Server(MSSQL)环境下,掌握动态SQL的基本语法是提升SQL编程能力的关键。下面,我们将深入探讨动态...

    SQL高级面试题及答案

    19. **删除重复记录**: - 删除所有非最小ID的重复记录,可以使用子查询和`NOT IN`。 以上是SQL面试中可能遇到的一些高级问题和解答,涵盖了表操作、查询优化、联接、聚合函数、分页、子查询等多个方面,对于理解...

    T-SQL语法大全

    - 删除表中的所有记录。 ```sql DELETE FROM Students; ``` #### 查询 1. **查询全部的行和列**: - 选择表中的所有数据。 ```sql SELECT * FROM Students; ``` 2. **查询部分行**: - 选择表中满足特定...

    SQL语句的使用方法大全

    17. 删除重复记录:删除重复记录通常涉及使用`GROUP BY`和`HAVING`子句,或者通过自连接和`DISTINCT`关键字来实现。 以上是SQL语句的一些常见用途和示例,它们在数据库管理、数据分析以及应用开发中扮演着重要角色...

    sql关键字字典大全

    - **BIGINT**:一种数据类型,用于存储大整数,在不同的SQL版本中有着一致的保留状态,但在PostgreSQL中是非保留的,这意味着它可以作为标识符使用,但不推荐这样做。 #### C系列关键字 - **CACHE**:在不同SQL...

    SQL必知必会

    数据记录筛选是SQL中最常用的查询方式之一,主要包括以下几种方法: 1. **基础查询**: ```sql SELECT * FROM 数据表 WHERE 字段名 = 字段值 ORDER BY 字段名 [DESC] ``` - **功能**:选择表中满足指定条件的...

    SQL数据库试题选择填空

    SELECT语句可以实现从指定表或视图中选取数据、去除重复记录(DISTINCT)、连接多个表(UNION)、选取前N条记录(TOP)等功能。 **9. 使用GROUP BY进行分组时,可配合哪些聚合函数使用:** - **A:** ORDER BY, ...

    SQL COOKBOOK(压缩1/2)

    4.16删除重复记录 4.17删除从其他表引用的记录 第5章 元数据查询 第6章 使用字符串 第7章 使用数字 第8章 日期运算 第9章 日期操作 第10章 范围处理 第11章 高级查找 第12章 报表和数据仓库运算 第...

    sql中英文单词及名词解释

    - **TRUNCATETABLE 是一种快速、无日志记录的方法删除所有行** - 用于快速删除表中的所有行。 - **NOTEXISTS 子查询不返回行** - 用于检查子查询是否没有返回任何行。 - **INNERJOIN….ON.. 内联连接** - ...

    SQL语句常用汇总

    插入新记录有两种方式,指定字段名或不指定: ```sql INSERT INTO 数据表 (字段1, 字段2, ...) VALUES (值1, 值2, ...); INSERT INTO 数据表 VALUES (值1, 值2, ...); ``` 9. **更新数据**: 更新记录使用`...

    sql高级进阶

    - 删除名称重复的记录:结合窗口函数或自关联删除重复项。 5. 使用字符串 - 遍历字符串:利用数据库函数逐个处理字符串中的字符。 - 字符串文字中包含引号:使用转义字符处理引号。 - 计算字符在字符串中出现的...

Global site tag (gtag.js) - Google Analytics