- 浏览: 1045558 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
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 2644MySQL 5.1 无法启动 1067 错误解决方法 这两天 ... -
连接VMWare上的oracle
2010-07-05 10:55 1607在vmware上面安装了一个oracle,主机却怎么也连接不 ... -
oracle-merge用法详解
2010-01-26 14:10 1083原文:http://blog.chinaunix.net/u/ ... -
数据库与数据仓库的区别
2010-01-19 12:38 1301简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 ... -
oracle 判断字段中的中文的方法
2010-01-18 15:30 5199判断字段中的中文的方法,与oracle的字符集有关, AL32 ... -
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界
2010-01-11 10:04 2727想要造一点随机数据,日期等于ID%30,结果却碰到了:“从 ... -
oracle 与 SQL Server 利用select 建表和update的区别
2010-01-05 14:47 2404Oracle: 建表可以使用: crea ... -
调用oracle10g 存储过程利用sys_refcursor返回结果集
2009-12-23 12:16 4905SQL> create table test 2 ... -
ORACLE中有没有判断一个字符串是否可以转换成数字的函数
2009-12-23 09:56 3843Org: http://topic.csdn.net/t/20 ... -
ORACLE存储过程update不成功的另一个原因
2009-12-11 10:45 5267今天,一个存储过程遇到了一个奇怪的问题,没有任何的出错信息,但 ... -
oracle存储过程调用
2009-12-02 15:24 2703今天写了一个存储过程,发现PL/SQL里面这个存储过程图标上老 ... -
聚族索引、非聚族索引、组合索引的含义和用途
2009-11-26 10:48 2349一、什么是索引 索引可以理解为我们小时候使用 的汉语字典的 ... -
mssql附加数据库后出现“对象名XXXX无效”
2009-11-19 16:48 5383mssql数据库服务器进行硬件升级后,采用附加数据库的方式还原 ... -
换种方法,提高left join查询的效率
2009-09-28 15:11 4535表之间使用联结查询时,以left join为例,当联结的表较多 ... -
char,varchar,nvarchar有什么区别
2009-09-25 13:08 1392一 、 nchar 和 nvarc ... -
Oracle索引与where
2009-09-24 12:24 1337一个ORACLE查询中,有N多的查询条件,要把:一次可以缩小范 ... -
大数据量分页存储过程效率测试附代码
2009-09-24 11:17 1591原文地址:http://www.cnblogs.com/Jos ... -
SQLServer 实现rownum 的功能
2009-09-10 10:39 7912方法1: with temp as ( sel ... -
ORACLE中用rownum分页并排序的SQL语句
2009-09-10 10:37 1607以前分页习惯用这样的SQL语句: select * ... -
Oracle触发器介绍
2009-09-07 09:25 1438语句级触发器我们先看 ...
相关推荐
sql server可以去除数据库重复记录,增加统计数据库的有效性
今天接到一任务,有一张学生信息表(Excel表),里面有一万多条记录,现在要把这张表导入到数据库中,并设置学生学号为主键,但是现在这张表中的学生学号有重复的记录,我必须先找出这些重复的记录,然后再进行筛选,...
多表update sql语句总结mysql锁表和解锁语句分享MySQL中基本的多表连接查询教程MySQL表字段设置默认值(图文教程及注意细节)MySQL中使用表别名与字段别名的基本教程mysql查询表里的重复数据方法mysql 导入导出数据库...
1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段...
19、说明:删除重复记录 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert into...
有两个意义上的重复记录,一是完全重复的记录,也即所有字段均都重复,二是部分字段重复的记录。对于第一种重复,比较容易解决,只需在查询语句中使用distinct关键字去重,几乎所有数据库系统都支持distinct操作。...
101.6 浏览和编辑子数据表中的相关记录 111.7 使Jet和SQL Server 7.0/MSDE数据库 相一致 111.8 Access在2000年问题上的改进 121.8.1 四位数年份选项设置 121.8.2 数据库窗口 131.8.3 窗体和报表 141.8.4 名称自动...
1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段...
101.6 浏览和编辑子数据表中的相关记录 111.7 使Jet和SQL Server 7.0/MSDE数据库 相一致 111.8 Access在2000年问题上的改进 121.8.1 四位数年份选项设置 121.8.2 数据库窗口 131.8.3 窗体和报表 141.8.4 名称自动...
1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段...
1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段...
101.6 浏览和编辑子数据表中的相关记录 111.7 使Jet和SQL Server 7.0/MSDE数据库 相一致 111.8 Access在2000年问题上的改进 121.8.1 四位数年份选项设置 121.8.2 数据库窗口 131.8.3 窗体和报表 141.8.4 名称自动...
101.6 浏览和编辑子数据表中的相关记录 111.7 使Jet和SQL Server 7.0/MSDE数据库 相一致 111.8 Access在2000年问题上的改进 121.8.1 四位数年份选项设置 121.8.2 数据库窗口 131.8.3 窗体和报表 141.8.4 名称自动...
界址线类别可以通过ArcMap的空间筛选批量添加在界址线图层的界址线类别字段中,并不费事所以就没必要编写代码了。 界址线赋位置之前,界址线图层界址线类别字段必须上好。界址线位置完全根据界址线图层的界址线类别...
1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段...
1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段...
1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段...
1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段...
1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段...
MySQLMTOP 2.2 更新记录:1.google字体样式本地化,解决字体加载慢的问题2.python脚本执行方式修改由./python script更新为python script3.复制监控支持gtid模式的监控4.修复复制延时无法报警的问题5.修复进程监控里...