- 浏览: 1056495 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
nieanan:
感谢,很有帮助。
eclipse 改变JAVA_HOME路径 -
Orange_killer:
写的什么东西,文不对题
Hibernate Search大数据量手动建立索引 -
xiaoasha:
org.eclipse.equinox.servlet.api ...
《OSGI实战》遇到的问题 -
powertech:
写的挺细,有用!
SyntaxError: Non-ASCII character Python、Unicode和中文 -
huang_yong:
public class XMLUtil {
pri ...
XStream 去除生成的XML节点的class="list"
请问以下两个功能如何实现?
(1)如何选出重复的记录?
ID cname tc bm
-------------------------
1 张三 1
2 李四 1
3 张三 2 行政
4 王五 1
5 李四 2 销售
6 李六 1
7 张八 2 设计
(2)筛选重复的记录,把重复记录的tc为2的bm字段的内容更新到tc为1的相应的姓名中,得到的结果为:
ID cname tc bm
-------------------------
1 张三 1 行政
2 李四 1 销售
4 王五 1
6 李六 1
7 张八 2 设计
-------------------------------------------------------------------------------------------------------------------
1、select cname ,tc ,bm from tabname group by cname ,tc ,bm having count(*) > 1
2、select min(ID) as ID ,cname ,tc ,bm from tabname group by cname ,tc ,bm
--------------------------------------------------------------------------------------------------------------------
什么样的记录算是重复的呢? 猜测是姓名相同的就算重复吧.
1.
select 表.* from
表 join (select cname,count(cname) as num from 表 group
by cname having count(cname)>1) a
on 表.cname=a.cname
-------------------------------
5 李四 2 销售
2 李四 1
1 张三 1
3 张三 2 行政
-----------------------------------------------------------------------------------------------------------------------
姓名相同的为重复记录
-----------------------------------------------------------------------------------------------------------------------
update 表 set bm=a.bm from
(
select 表.*
from 表 join (select cname,count(cname) as num from 表
group by cname having count(cname)>1) a
on 表.cname=a.cname
) a where 表.cname=a.cname and 表.tc=1
update 表 set bm='' from
(
select 表.* from 表 join (select cname,count(cname) as
num from 表 group by cname having count(cname)>1) a
on 表.cname=a.cname
) a where 表.cname=a.cname and 表.tc=2
-------------------------------------------------------------------------------------------------------------------------
楼上的不行
--------------------------------------------------------------------------------------------------------------------------
自己顶...
--------------------------------------------------------------------------------------------------------------------------
1.找出重复记录
select * from 表 a where exists (select
1 from 表 where cname=a.cname group by cname having
count(cname)>1)
2.替换
update 表 set bm=c.bm from
(select b.* from 表 b join
(select cname,max(tc) as tc from 表 a where exists
(select 1 from 表 where cname=a.cname group by cname
having count(cname)>1)
group by cname
) a on b.cname=a.cname and b.tc=a.tc
) c where 表.cname=c.cname and 表.tc=1
3.删除重复记录
delete from 表 where id in
(
select a.id from 表 a join
(
select cname,min(tc) as tc from 表 a where exists
(select 1 from 表 where cname=a.cname group by cname
having count(cname)>1)
group by cname
) b
on a.cname=b.cname and a.tc=b.tc
)
--------------------------------------------------------------------------------------------------------------------------
哦,第三步不对,不是删除重复,而是
update 表 set bm='' from
(select b.* from 表 b join
(select cname,min(tc) as tc from 表 a where exists
(select 1 from 表 where cname=a.cname group by cname
having count(cname)>1)
group by cname
) a on b.cname=a.cname and b.tc=a.tc
) c where 表.cname=c.cname and 表.tc=2
----------------------------------------------------------------------------------------------------------------------------
自己在用的,SQLServer 与 Oracle通用:
查找所有重复记录:
select * from customer c inner join ( select acc,no from customer where active=1 group by acc,no having count(*) > 1 )t on c.acc=t.acc and c.no=t.no
更新所有重复记录:
update customer set active = 0 where id in( select id from customer c inner join ( select acc,no from customer where active=1 group by acc,no having count(*) > 1 )t on c.acc=t.acc and c.no=t.no )
发表评论
-
MySQL 5.1 无法启动 1067 错误解决方法
2010-07-13 23:06 2676MySQL 5.1 无法启动 1067 错误解决方法 这两天 ... -
连接VMWare上的oracle
2010-07-05 10:55 1646在vmware上面安装了一个oracle,主机却怎么也连接不 ... -
oracle-merge用法详解
2010-01-26 14:10 1117原文:http://blog.chinaunix.net/u/ ... -
数据库与数据仓库的区别
2010-01-19 12:38 1334简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 ... -
oracle 判断字段中的中文的方法
2010-01-18 15:30 5292判断字段中的中文的方法,与oracle的字符集有关, AL32 ... -
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界
2010-01-11 10:04 2775想要造一点随机数据,日期等于ID%30,结果却碰到了:“从 ... -
oracle 与 SQL Server 利用select 建表和update的区别
2010-01-05 14:47 2436Oracle: 建表可以使用: crea ... -
调用oracle10g 存储过程利用sys_refcursor返回结果集
2009-12-23 12:16 4944SQL> create table test 2 ... -
ORACLE中有没有判断一个字符串是否可以转换成数字的函数
2009-12-23 09:56 3896Org: http://topic.csdn.net/t/20 ... -
ORACLE存储过程update不成功的另一个原因
2009-12-11 10:45 5322今天,一个存储过程遇到了一个奇怪的问题,没有任何的出错信息,但 ... -
oracle存储过程调用
2009-12-02 15:24 2736今天写了一个存储过程,发现PL/SQL里面这个存储过程图标上老 ... -
聚族索引、非聚族索引、组合索引的含义和用途
2009-11-26 10:48 2382一、什么是索引 索引可以理解为我们小时候使用 的汉语字典的 ... -
mssql附加数据库后出现“对象名XXXX无效”
2009-11-19 16:48 5431mssql数据库服务器进行硬件升级后,采用附加数据库的方式还原 ... -
换种方法,提高left join查询的效率
2009-09-28 15:11 4586表之间使用联结查询时,以left join为例,当联结的表较多 ... -
char,varchar,nvarchar有什么区别
2009-09-25 13:08 1428一 、 nchar 和 nvarc ... -
Oracle索引与where
2009-09-24 12:24 1367一个ORACLE查询中,有N多的查询条件,要把:一次可以缩小范 ... -
大数据量分页存储过程效率测试附代码
2009-09-24 11:17 1626原文地址:http://www.cnblogs.com/Jos ... -
SQLServer 实现rownum 的功能
2009-09-10 10:39 7971方法1: with temp as ( sel ... -
ORACLE中用rownum分页并排序的SQL语句
2009-09-10 10:37 1647以前分页习惯用这样的SQL语句: select * ... -
Oracle触发器介绍
2009-09-07 09:25 1469语句级触发器我们先看 ...
相关推荐
本文将详细介绍如何在不同的数据库系统(如MySQL、SQL Server、Oracle等)中删除重复记录。 #### SQL删除重复记录的基本思路 删除重复记录的核心思想是先识别出哪些记录是重复的,然后通过某种方式将这些重复记录...
在数据库管理过程中,经常会遇到需要清理数据的情况,其中一种常见需求就是删除数据库中的重复记录,同时确保每条数据的关键字段只保留一条记录。这种操作在维护数据一致性、提高查询效率等方面具有重要意义。根据...
在数据库管理与维护过程中,查询和处理重复记录是一项非常重要的工作。本文将详细介绍几种常见的SQL查询重复记录的方法,并提供具体的示例代码。 #### 方法一:查询具有重复值的记录(返回所有重复记录) **SQL...
在数据库管理过程中,删除重复记录是一项常见的需求,尤其是在数据清洗、维护数据一致性等方面。本文将详细介绍一种高效的方法来删除Oracle数据库中的重复记录,并通过具体的SQL语句示例来帮助读者理解和掌握这种...
在处理大量数据时,经常会遇到需要找出数据库中重复记录的情况。这对于数据清洗、数据分析以及确保数据质量都非常重要。本文将详细介绍如何使用SQL语句来查找MySQL数据库中的重复用户。 #### 核心SQL查询语句解析 ...
sql server可以去除数据库重复记录,增加统计数据库的有效性
在数据库管理中,重复记录是指数据库表中的数据项完全相同或部分关键字段相同的多条记录。这些重复的数据可能会导致数据统计不准确、占用额外的存储空间等问题,并且在处理大量数据时可能会影响系统的性能。 #### ...
- 当只需要知道是否存在重复数据而不需要具体的重复记录时,可以使用`COUNT(DISTINCT column_name)`。 - 示例:`SELECT COUNT(DISTINCT id) FROM a;` ### 总结 本文详细介绍了如何使用SQL查询表中的重复数据,...
具体来说,通过使用`GROUP BY`子句结合`COUNT()`函数,可以统计每个唯一标识符(如`peopleid`)出现的次数,再利用`HAVING`子句筛选出出现次数大于1的标识符,从而定位到重复记录。 ### SQL语句解析 #### 基础SQL...
此查询语句通过子查询找出每组重复记录中ROWID最小的那条记录,并在外部查询中筛选出除ROWID最小之外的其他重复记录。 ##### 2. 使用GROUP BY方法 **查询重复数据示例** 使用`GROUP BY`方法时,可以通过计算每组...
在进行拼音首字母转换后,函数通过`like 'Z%'`这样的SQL语句来筛选出所有拼音首字母为“Z”的记录。这种基于首字母的排序和检索方式,可以显著提高数据库的查询性能,尤其是在处理大量数据时。 #### 4. 动态SQL与...
《易2.55版数据库记录编辑器模块》是一款专为数据库管理设计的专业工具,它提供了强大的记录编辑功能,能够帮助用户高效地管理和修改数据库中的数据。在这个版本中,开发者针对用户需求进行了诸多优化和升级,提升了...
在Oracle数据库管理中,处理重复记录是一项常见的需求,尤其是在数据量较大的情况下。本文将详细介绍如何利用Rowid这一特性来有效地查找和删除表中的重复记录。 #### Rowid的概念 Rowid是Oracle数据库中用于唯一...
标题和描述中的“多行多列筛选不重复值新探讨共2页”表明这是一个关于电子表格处理的主题,可能涉及到Excel或其他类似的数据管理工具。在这个话题中,重点是学习如何在多行多列的数据中有效地去除重复值,以确保数据...
根据提供的文件信息,我们可以深入探讨SQL中查询重复记录的各种方法及其应用场景。首先,我们来解析一下文件中的示例代码,并在此基础上进一步扩展相关的知识点。 ### 查找所有重复标题的记录 文件中的第一个示例...
在数据库管理和数据清洗的过程中,有时我们需要处理表内的重复记录。这些重复记录可能会影响数据的准确性,导致统计分析出错。本文将详细介绍如何使用SQL语句查询并删除同一表内一个或多个字段的重复记录。 首先,...
主键约束是指对表中的每一条记录的唯一标识,非空约束是指某个字段不能为null,唯一性约束是指某个字段的值不能重复。 查询语言 查询语言是指对数据库表中的数据进行查询和提取的语言。常见的查询语言包括SELECT...
- history.txt:可能包含了用户的查询历史记录,方便用户回顾和重复执行先前的SQL语句。 - readme.txt:通常包含软件的使用说明、注意事项或者版本信息,是初次使用时应该查阅的重要文档。 - VirusCheck.txt:可能是...
1. 数据库基础概念:了解数据库的基本原理,包括关系型数据库模型、数据表、字段、记录和键的概念。在Access中,这些元素构成了数据库的基础架构。 2. 创建数据库:学习如何从头开始创建一个新的Access数据库,包括...