- 浏览: 1127054 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (240)
- javascript (24)
- Struts (3)
- Hibernate (9)
- spring (3)
- 学海无涯 (45)
- jstl (4)
- java (21)
- js (4)
- Ajax (2)
- 开源框架-ajax (1)
- oracle spring (38)
- unix (6)
- 美国骆驼 American Camel 骆驼皮鞋 骆驼正品 (0)
- android (1)
- BIEE (16)
- informatica (13)
- 触摸屏 (1)
- 诈×骗×电话 (4)
- 远程桌面无法连接 (1)
- 旅游 (3)
- 生活 (8)
- hp6531s (2)
- oracle (6)
- 短信病毒 (1)
- 手机诈骗 短信病毒 (3)
- 骗子 (3)
- ultraedit (1)
- sql2008 (0)
- 苏宁易购大骗子 苏宁易购二手当新品卖 苏宁易购以次充好 苏宁易购您还敢下单吗 (0)
- 苏宁易购二手当新品卖 (0)
- informatica etl (5)
- etl (8)
- NoClassDefFoundError: com/opensymphony/xwork2/util/classloader/ReloadingClas (1)
- mysql (2)
- jquery ajax post (1)
- jason (1)
- json (1)
- struts2 (1)
- jsp 文本编辑器 (2)
- beyond compare (1)
- svn (3)
- EAS BOS (3)
- tapestry5 (1)
- obiee (3)
- java dll (2)
- office (1)
- kettle 8.2 org.gjt.mm.mysql.Driver (1)
最新评论
-
JianCaesar:
oracleStr2Clob,为什么要用反射,直接调用不可以吗 ...
java String和Clob转换 -
vip_gg:
...
邮件失败!javax.mail.AuthenticationFailedException: 535 Error: authentication -
cherryQQ:
我把敏感的用*号代替啦,这样可以了吧,等你加一个号,等着租房子 ...
**同城租房需要加房东的微*号 -
sam.sheng.3:
dream80 写道是的,这个主要就是二步验证的问题,很多人不 ...
AttributeError: can't set attribute -
ooo456mmm:
不错
oracle job 定时执行 存储过程
1、查询表中重复数据。select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)
elect * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
(三)
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
方法二
"重复记录"有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如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,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
(四)
查询重复
select * from tablename where id in (select id from tablename group by id
having count(id) > 1)
0 0 0
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)
elect * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
(三)
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
方法二
"重复记录"有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如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,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
(四)
查询重复
select * from tablename where id in (select id from tablename group by id
having count(id) > 1)
0 0 0
发表评论
-
ORA-00932: 数据类型不一致:应为-,但却获得NCLOB
2015-04-01 13:36 2639今天在做查询 进行clob group by 发 ... -
ORA-22992:无法使用远程表选择的LOB定位符
2013-11-15 11:25 15987ORA-22992:无法使用远程表选择的LOB定位符 ... -
Caused by: Cannot locate the chosen ObjectFactory implementation: spring
2013-11-14 13:45 1451Caused by: Cannot locate the ... -
nvarchar2与varchar2的区别
2013-08-05 12:56 1602nvarchar2与varchar2的区别 今 ... -
union all 和union的区别
2013-07-25 16:30 1006今天检查了一下写的视图,发现数据不对,数据量相差 ... -
PL/SQL 9 注册码 pl sql 9注册码
2012-10-09 09:52 1278PL/SQL 9 注册码 pl sql 9注册码 cod ... -
ERROR 1366 (HY000): Incorrect string value: '\xCE\xDE\xBD\xC7\xC9\xAB' for colum
2011-06-16 11:07 1856一开始我就知道是编码问题,可能是我在装MYSQL的时候选择的是 ... -
ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes
2011-06-10 11:13 2191ORA-20000: ORU-10027: buffer ov ... -
java sql like '%?%' 索引无效的问题 java sql like '%?%'取不到值
2011-05-17 15:11 2721在java 代码里面的sql like ‘%?%’ 有时候获 ... -
oracle 创建DBLINK 创建dblink实例
2011-01-25 16:10 2699在CSDN上面看到一篇不错 ... -
oracle job 定时执行 存储过程
2010-12-29 16:44 78972oracle job 定时执行 存储过程 ... -
-4030:ORA-04030: 在尝试分配 16 字节 (callheap,qerrmbv[]: qerrmObnd) 时进程内存不足
2010-12-02 14:53 3257已经遇到过几次这样的错误【 -4030:ORA-04030: ... -
oracle 修改字段类型
2010-11-12 10:54 1198(1)、增加字段 alter ta ... -
-2298错误信息:ORA-02298: cannot validate (PROD.REF_701) - parent keys not found ALTE
2010-10-02 15:47 3362-2298错误信息:ORA-02298: cannot val ... -
sql 1=1
2010-09-07 11:25 1300sql 1=1 sql.Append(" ... -
ORA-01830: date format picture ends before converting entire input string
2010-08-19 11:43 16847今天在调试存储过程时报这样的错误:校验异常: ORA-0183 ... -
oracle 截取字符串后三位
2010-08-12 17:35 4712select substr('tghyhjkiiu ... -
oracle 变量varchar2类型
2010-07-20 19:40 1588VARCHAR2(<size>) varchar2 ... -
oracle 创建同义词
2010-07-16 03:10 2055----创建同义词create or replace syno ... -
oracle 创建用户和密码,用户赋权,查看表空间
2010-07-15 14:41 2164创建临时表空间 创建临时表空间CREATE TEMPORAR ...
相关推荐
查询和删除表中重复的数据的sql语句大全
功能: 根据表名、where条件,生成导出数据的SQL语句。(包含insert语句。结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件(传空时,导出全部...
是一个简单的sql语句,你可以仿照这个语句查出表里的重复数据。
查询一个数据库下面所有的表的结构的T-sql语句
在查询分析器中,直接用sql语句,把excel表中的数据导入到sqlserver数据库的相应表中
用SQL语句j查SQLServer的表结构 用SQL语句j查SQLServer的表结构
自己学习的笔记--查询计算机系CS男学生学号、姓名和考试成绩 SELECT A.Sno,A.Sname,B.degree FROM student A,sc B WHERE A.Sdept = 'CS' AND A.Ssex = '男' AND A.Sno = B.sno SELECT A.Sno,A.Sname,B.degree FROM ...
常用sql语句(有表结构)
5、 掌握使用 SQL 语句查询表中的数据; 6、 掌握使用 SQL 语句插入、修改和删除数据表中的数据; 7、 掌握使用 SQL 语句创建、删除、查询和更新视图。 二、 实验内容 (一)创建数据库和模式 1、通过 SQL 语句创建...
一、Transact-SQL语句进行导入导出: 1.在SQL SERVER里查询access数据: 2.将access导入SQL server 3.将SQL SERVER表里的数据插入到Access表中 二、SQL SERVER 和EXCEL的数据导入导出
ODBC编程中,不可能只有一个数据表,多表查询SQL语句同样胜任!
1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。 2、掌握使用SQL语句修改表的结构。 3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。 1.创建名为“Project”的数据库 2.在Project数据库下...
SQL语句
通过解析sql语句获取表血缘关系
oracle查找定位占用临时表空间较大的SQL语句方法,包括:(1)造成临时表空间暴涨的SQL还在运行中(2)造成临时表空间暴涨的SQL已经运行过了。
使用sql语句将查询的数据中的值按时间递增累加
数据库建表操作SQL语句大全,对sql有初步的了解,适合新手初步学习
Visual C++源代码 158 如何获取SQL语句多个查询结果表Visual C++源代码 158 如何获取SQL语句多个查询结果表Visual C++源代码 158 如何获取SQL语句多个查询结果表Visual C++源代码 158 如何获取SQL语句多个查询结果表...
db2常用语句、db2常用语句、db2常用语句、db2常用语句、db2常用语句、db2常用语句、db2常用语句、db2常用语句
SQL_server将表中的记录转换成Insert(插入)SQL语句,SQL_server将表中的记录转换成Insert(插入)SQL语句