解析Oracle查询和删除JOB的SQL

查询及删除重复记录的SQL语句
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
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)
注:rowid为oracle自带不用该.....
3、查找表中多余的重复记录(多个字段)
select * 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 ......

(0)

相关推荐

  • 在SQL Server和Oracle中创建job

    首先说下ms server,因为我也是新手,所以首先选择了使用企业管理器进行任务设定,然后再导出设计完毕的任务脚本,这样就可以在其他数据库中直接通过执行脚本的形式来新建任务了(需要适当修改其中的一些任务名称和数据库名称等值),下面说下具体的操作步骤以及获得的任务脚本: 1. 保证启动ms server的"SQL Server代理服务"(即agent service) 2. 打开企业管理器 -> 连接数据服务器 -> 右键"SQL Server agent"

  • Oracle Job时间间隔设置

    初始化相关参数job_queue_processes alter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000 ;job_queue_interval = 10 //调度作业刷新频率秒为单位 job_queue_process 表示oracle能够并发的job的数量,可以通过语句 show parameter job_queue_process; select * from v$parameter where name=

  • oracle 会话 死锁 执行sql 执行job的方法

    //根据用户分组会话 select t.USERNAME,count(*) from v$session t group by t.USERNAME //查找某一用户正在执行的sql_id值 select * from v$session t where t.USERNAME = 'BUDGET' and t.SQL_ID is not null //查找对应sql_id的对应sql语句 select m.SQL_TEXT from v$session t , v$sqlarea m where

  • 解析Oracle查询和删除JOB的SQL

    查询及删除重复记录的SQL语句1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where p

  • 解析oracle对select加锁的方法以及锁的查询

    解析oracle对select加锁的方法以及锁的查询一.oracle对select加锁方法 复制代码 代码如下: create table test(a number,b number);insert into test values(1,2);insert into test values(3,4);insert into test values(8,9);commit;---session 1 模拟选中一个号码SQL> select * from test where a =1 for up

  • ORACLE查询删除重复记录三种方法

    比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 复制代码 代码如下: select p1.*   from persons  p1,persons  p2   where p1.id<>p2.id   and  p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address 可以实现上述效果. 几个删除重复记录的SQL语句 1.用rowid方法 2.用g

  • oracle查询重复数据和删除重复记录示例分享

    一.查询某个字段重复 select * from User u where u.user_name in (select u.user_name from User u group by u.user_name having count(*) > 1) 二,删除表中某几个字段的重复 例:表中有条六条记录.   其中张三和王五   的记录有重复 TableA id customer PhoneNo 001 张三 777777 002 李四 444444 003 王五 555555 004 张三 7

  • Oracle批量查询、删除、更新使用BULK COLLECT提高效率

    BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer用法笔记. 例1: 批量查询项目资金账户号为 "320001054663"的房屋账户信息并把它们打印出来 . DECLARE TYPE acct_table_type IS TABLE OF my_acct%ROWTYPE INDEX BY BINARY_INTEGER; v_acct_table acct_table_type; BE

  • SQL重复记录查询 查询多个字段、多表查询、删除重复记录的方法

    SQL重复记录查询 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 例二:  select * from testtable where numeber in (select number from people group by numbe

  • SQL 查询和删除重复字段数据的方法

    例如: id           name         value 1               a                 pp 2               a                 pp 3               b                 iii 4               b                 pp 5               b                 pp 6               c           

  • 一文解析ORACLE树结构查询

    我们在日常程序设计中,经常会遇到树状结构的表示,例如组织机构.行政区划等等.这些在数据库中往往通过一张表进行展示.这里我们以一张简单的行政区划表为例进行展示,在实际使用过程中,可以为其添加其他描述字段以及层级. 表中通过ID和PID关联,实现树状结构的存储.建表以及数据语句如下: -- Create table create table TREETEST ( id NVARCHAR2(50), pid NVARCHAR2(50), name NVARCHAR2(50) ) insert into

  • sql分组后二次汇总(处理表重复记录查询和删除)的实现方法

    --处理表重复记录(查询和删除) /****************************************************************************************************************************************************** 1.Num.Name相同的重复值记录,没有大小关系只保留一条 2.Name相同,ID有大小关系时,保留大或小其中一个记录 整理人:中国风(Roy) 日期:2008

  • 解析Oracle 8i/9i的计划稳定性

    正在看的ORACLE教程是:解析Oracle 8i/9i的计划稳定性.由Oralce8.1开始,Oracle增加了一个新的特性就是Stored Outlines,或者称为Plan Stability(计划稳定性).这个特性带来三个好处.首先,你可以优化开销很大的语句的处理.第二,如果有一些语句Oracle需要花费长时间来优化(而不是执行),你可以节省时间并且减少优化阶段的竞争.最后,它可以让你选择使用新的cursor_sharing参数而无需要担心因此而不采用优化的执行路径. 要知道如何使用存储

随机推荐