`
wenjinglian
  • 浏览: 821822 次
  • 性别: Icon_minigender_1
  • 来自: 株洲->深圳
社区版块
存档分类
最新评论

SQL删除重复记录(针对于某几个字段相同)

SQL 
阅读更多

例:表中有条六条记录。   其中张三和王五   的记录有重复  
  TableA  
  id     customer   PhoneNo  
  001   张三           777777  
  002   李四           444444  
  003   王五           555555  
  004   张三           777777  
  005   张三           777777  
  006   王五           555555   
  如何写一个sql语句将TableA变成如下   
  001   张三           777777  
  002   李四           444444  
  003   王五           555555

--测试环境  
  create   table   TableA   (   id   varchar(3),customer   varchar(5),PhoneNo   varchar(6))  
  insert   into   TableA   select   '001','张三','777777'  
  union   all   select   '002','李四','444444'  
  union   all   select   '003','王五','555555'  
  union   all   select   '004','张三','777777'  
  union   all   select   '005','张三','777777'  
  union   all   select   '006','王五','555555'

--结果

delete   TableA from   TableA T    where  

exists(   
select 1  from  tablea   where   customer=T.customer   and   phoneno=T.phoneno   
and  id < tt.id

)

 

--总结 

该方法适用于有一个字段为自增性,例如本例中的id

delete   表名 from   表名 as T    where  

exists(   
select 1  from  表名   where   字段A=T.字段A   and   字段B=T.字段B,(....)   
and  自增列 < T.自增列

)

 

1
0
分享到:
评论

相关推荐

    oracle删除重复记录性能分析

    这种方法通过比较两个表中的`ggzj_zqdm`字段,仅保留最大ROWID值的记录,其他重复记录均被删除。适用于有特定条件限制的场景。 #### 三、性能分析 1. **ROWID直接删除**:优点在于简单且速度快,但对于数据量较大...

    实例介绍删除数据库中重复数据的几个方法

    ### 实例介绍删除数据库中重复数据的几个方法 在数据库管理过程中,删除重复记录是一项常见的需求,特别是当数据库中存在大量的冗余数据时,这不仅浪费存储空间,还可能导致查询性能下降以及数据的一致性问题。本文...

    SQL.rar_delphi sql

    4. "游标批量删除有X字段的表记录.sql" 和 "游标批量.sql":游标是SQL中用于逐行处理结果集的工具,特别是在需要对数据进行迭代操作时。这两个文件可能演示了如何使用游标进行批量删除操作,特别是当删除条件涉及...

    达梦数据库_SQL语言手册

    达梦数据库_SQL语言手册.pdf 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子...

    SQL性能优化

     如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引; 7. 频繁 DDL 的表,不要建立太多的索引 8. 删除无用的索引,避免对执行计划造成负面影响 9. 让 SQL 语句用上合理的索引,合理让 SQL ...

    2009达内SQL学习笔记

    多个字段组合时,只排除组合重复的。 DISTINCT必须使用列名,不能使用计算或者表达式。 所有的聚合函数都可以使用。如果指定列名,则DISTINCT只能用于COUNT(列名),DISTINCT不能用于COUNT(*)。 如:Select ...

    易语言数据库检查重复字段模块源码-易语言

    3. 字段选择函数:定义需要检查重复性的字段,可能允许用户输入多个字段名。 4. 数据扫描和比较算法:遍历表中的所有记录,对比指定字段的值,找出重复项。这可能涉及到哈希函数、排序算法等数据结构和算法的应用。 ...

    数据库系统概论(第五版)PPT第3章(2).ppt

    4. **数据查询**:这是SQL的核心部分,分为以下几个子主题: - **单表查询**:针对单一表进行查询,可以获取特定列、行或者满足特定条件的数据。 - **连接查询**:涉及两个或多个表,通过连接字段(连接条件或连接...

    Informatica+PowerCenter常用转换组件使用说明

    ### Informatica PowerCenter 常用转换组件使用说明 ...以上就是针对 Informatica PowerCenter 中几个常用转换组件的详细介绍。通过对这些组件的理解和掌握,可以帮助用户更高效地完成数据集成项目中的数据处理任务。

    ORACLE SQL语句优化技术要点解析

    `UNION`操作符会删除重复记录,涉及排序和额外的内存开销。若不需要去重,应使用`UNION ALL`替代,以减少不必要的处理。 在SQL书写的规范方面,虽然不同写法可能在执行效果上无异,但相同的SQL字符串可以减少Oracle...

    数据库第二次月考试卷.docx

    正确答案是(D)ZAP NEXT 10,这个命令会立即删除从当前记录开始的10条记录,且不需要额外的PACK命令来整理文件。 3. 题目3测试的是索引命令。答案是(A)INDEX ON -总分 TO WP,这将创建一个按“总分”字段降序排列的...

    史上最全 55道 MySQL面试题及答案,看完碾压面试官

    - ENUM是一种预定义值的字符串类型,用于限制列只能接受预设的几个值。 10. **REGEXP的定义** - REGEXP是正则表达式匹配,用于在字符串中查找特定模式。 11. **CHAR与VARCHAR的区别** - CHAR长度固定,存储时用...

    oracle索引

    5. **为性能安排索引列**:当多个字段经常一起用于检索时,组合索引会比单个索引更有效。 6. **限制每个表的索引数量**:虽然理论上一个表可以有几百个索引,但对于频繁插入和更新的表,过多的索引会导致较高的CPU和...

    2021-2022计算机二级等级考试试题及答案No.12313.docx

    根据给定文件的信息,我们可以总结出以下几个重要的知识点: ### 1. Word 文档中的格式工具栏功能 **知识点概述:** Word 的格式工具栏提供了一系列的功能来帮助用户修改文档的外观,包括字体大小、字体样式等。 ...

    一个完整的ORACLE的触发器代码

    - **更新时**:如果新记录的`C_MEASURETYPE`字段值为`'AAA'`或`'BBB'`,旧记录的`C_MEASURETYPE`字段值不为`'AAA'`或`'BBB'`,并且`C_NUMB`字段长度小于7,则执行与插入时相同的逻辑。 #### 五、注意事项与优化...

    1000道 互联网Java工程师面试题 485页_PDF密码解除.pdf

    说几个zookeeper常用的命令。** - `get`:获取节点数据。 - `set`:设置节点数据。 - `ls`:列出子节点。 - `create`:创建节点。 - `delete`:删除节点。 **26. ZAB和Paxos算法的联系与区别?** - **联系:**...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:Oracle中要删除一个用户,必须要具有dba的权限。而且不能删除当前用户,如果删除的用户有数据对象,那么必须加上关键字cascade。 用法:drop user 用户名 [cascade] 四、 用户权限与角色 1. 权限 Oracle中权限...

    Tianlesoftware Oracle 学习手册(v1.0)高清完整PDF版

    它可以同时考虑多个字段,以提高特定查询的性能。例如: ```sql CREATE INDEX index_name ON table_name (column1, column2, column3); ``` **1.2.1.9 ORACLE ROWID** ROWID是Oracle中一种特殊的数据类型,用于...

    MYSQL建立外键失败几种情况记录Can't create table不能创建表

    如果引用的字段不是主键,确保为其创建一个唯一索引。 3. 外键名称冲突:确保外键名称在整个数据库中是唯一的。如果出现冲突,可以尝试更改外键名称或添加随机字符以避免重复。 4. 错误的存储引擎:外键约束只在...

    测试培训教材

    就测试过程本身而言,应该包含以s下几个阶段。  -测试需求的分析和确定。  -测试计划。  -测试设计。  -测试执行。  -测试记录和缺陷跟踪。  -回归测试。  -测试总结和报告。 一个好的测试管理工具...

Global site tag (gtag.js) - Google Analytics