首页 > 数据库 >oracle常用sql

oracle常用sql

时间:2024-02-05 14:34:39浏览次数:39  
标签:常用 person nature weekdate dept sql oracle id select

--备份tbluser的数据到tbluser_bak中
create table tbluser_bak as select * from tbluser; --此处不加as也行
--删除备份表的数据
truncate table tbluser_bak;

--还原表数据
insert into tbluser_bak select * from tbluser ;

--查看数据是否恢复
select * from tbluser_bak;
--查询重复数据不用having

select * from SCH_SC_OTHERTIME where PERSON_ID in(select PERSON_ID from (select PERSON_ID, DEPT_ID, NATURE , count(1)as num
from SCH_SC_OTHERTIME
group by PERSON_ID, DEPT_ID, NATURE ) where num>1)

--查询重复数据用having

select e.person_id, e.dept_id, e.nature
from sch_sc_othertime e
group by e.person_id, e.dept_id, e.nature
having count(*) > 1

--查看根据指定字段查询重复数据保留最大值

delete from sch_sc_weekresiduetime e
 where (e.person_id, e.dept_id, e.nature, e.weekdate, e.residuenumber) not in
       (select e.person_id,
               e.dept_id,
               e.nature,
               e.weekdate,
               max(e.residuenumber)
          from sch_sc_weekresiduetime e
         group by e.person_id, e.dept_id, e.nature, e.weekdate)
   and (e.person_id, e.dept_id, e.nature, e.weekdate) in
       (select e.person_id, e.dept_id, e.nature, e.weekdate
          from (select e.person_id,
                       e.dept_id,
                       e.nature,
                       e.weekdate,
                       count(1) as num
                  from sch_sc_weekresiduetime e
                 group by e.person_id, e.dept_id, e.nature, e.weekdate) e
         where e.num > 1);

--删除重复数据

delete from sch_sc_weekresiduetime e
 where (e.person_id, e.dept_id, e.nature, e.weekdate) in
       (select e.person_id, e.dept_id, e.nature, e.weekdate
          from (select e.person_id,
                       e.dept_id,
                       e.nature,
                       e.weekdate,
                       count(1) as num
                  from sch_sc_weekresiduetime e
                 group by e.person_id, e.dept_id, e.nature, e.weekdate) e
         where e.num > 1)
   and rowid not in (select max(rowid) from sch_sc_weekresiduetime);

--查看根据指定字段查询重复数据保留最大值

delete from sch_sc_weekresiduetime e
where (e.person_id, e.dept_id, e.nature,e.weekdate, e.residuenumber) not in
(select e.person_id, e.dept_id, e.nature,e.weekdate, max(e.residuenumber)
from sch_sc_weekresiduetime e
group by e.person_id, e.dept_id, e.nature,e.weekdate
having count(*) > 1)
and (e.person_id, e.dept_id, e.nature,e.weekdate) in
(select e.person_id, e.dept_id, e.nature,e.weekdate
from sch_sc_weekresiduetime e
group by e.person_id, e.dept_id, e.nature,e.weekdate
having count(*) > 1);

--删除重复数据

delete from sch_sc_weekresiduetime e
where (e.person_id, e.dept_id, e.nature,e.weekdate) in
(select e.person_id, e.dept_id, e.nature,e.weekdate
from sch_sc_weekresiduetime e
group by e.person_id, e.dept_id, e.nature,e.weekdate
having count(*) > 1)
and rowid not in (select max(rowid)
from sch_sc_weekresiduetime e
group by e.person_id, e.dept_id, e.nature,e.weekdate
having count(*) > 1);

 

标签:常用,person,nature,weekdate,dept,sql,oracle,id,select
From: https://www.cnblogs.com/wiii/p/18007920

相关文章

  • 踩坑了,MySQL数据库生成大量奇怪的大文件
    作者:田逸(formyz)一大早就收到某个数据库服务器磁盘满的报警信息,其中数据盘使用率超过90%,如下图所示。这是一台刚上线不久的MySQL从库服务器,数据盘的总容量是300G。先登录系统,查看主从同步是否正常,幸运的是主从同步正常;再看看磁盘空间的使用情况,执行的命令及输出如下。df-h[root@MyS......
  • SQL数据库入门03:数据库表的完整性约束、索引与视图的操作
      本文介绍基于MicrosoftSQLServer软件,实现数据库表完整性约束、索引与视图的创建、编辑与删除等操作的方法。(数据库基础(三):完整性约束、索引、视图)  系列文章中示例数据来源于《SQLServer实验指导(2005版)》一书。依据本系列文章的思想与对操作步骤、代码的详细解释,大家用......
  • Mybatis 的 SqlSession 和一级缓存为什么失效?
    目录SqlSession是什么SqlSession分类SqlSession的创建为什么和Spring整合后的SqlSession一级缓存偶尔会失效一级缓存和二级缓存总结SqlSession是什么SqlSession是Mybatis中定义的,用来表示与关系数据库的一次会话,会话定义了各种具体的操作,查询、数据更新(包含保存、更新、删......
  • mysql模糊查询如何能用到索引?
    mysql模糊查询%我就不多说了。想要%不在左边也能用到索引,可以选择加全文索引假设我的表是wa_log记录日志的,url是访问的路径,想要查询url路径中包含admin的数据ALTERTABLEwa_logADDFULLTEXT(url);EXPLAINSELECT*FROMwa_logWHEREMATCH(url)AGAINST('admin'INBOOLEAN......
  • .net通过共享文件方式读取SQLLite数据库整理两种方案
    项目环境:win10,框架.net6.0问题描述:客户现场有一台测量设备,测量数据存放在测量设备本地SQLLite中,应用服务器存在另一台电脑上,客户希望通过共享文件方式读取SQLLite中的数据定时同步到应用服务器上进行查询展示。解决方案:网上搜了一下资料整理了一下大概两种方法:1.没有账号密......
  • mysql如何实现左连接、右连接
    学生表 students学生ID学生姓名1张三2李四3王五4小六5小七成绩表 grades学生ID课程学生成绩1数学862语文793数学914英语881、查询所有学生的id、姓名、成绩用左连接可以实现:SELECTstudents.学生ID,students.学生姓名,grades.成绩FROMstudentsLEFTJOINgradesONstudents.......
  • postgresql-时间函数
    PostgreSQL-version9.4.241.系统当前时间selectnow();--天、时分秒2022-09-2915:50:13.273269+08selectcurrent_date;--天2022-09-29selectcurrent_time;--时分秒15:50:13.507701+08selectcurrent_timestamp;--天、时分秒2022-09-2915:50:......
  • mysql-自定义函数
    0、结构delimiter$$--修改语句结束符,mysql默认的结束符是分号,为了在函数体中避免遇到分号就结束,重新定义结束符createfunction函数名(形参)returns返回值类型begin//函数体return返回值数据;end$$delimiter;--将语句结束符修改回来1、变......
  • 【数据库】PostgreSQL中的DISTINCT ON和DISTINCT的区别
    深入理解PostgreSQL中的DISTINCTON和DISTINCT在数据库查询中,我们经常会遇到需要去除重复数据的情况。在PostgreSQL中,我们可以使用DISTINCT和DISTINCTON来实现这个目标。那么,它们之间有什么区别呢?本文将详细介绍这两种方法的用法、区别以及适用场景。DISTINCT的基本用法DISTIN......
  • centos系统安装mysql并开放端口外部使用
    查看安装包:https://dev.mysql.com/downloads/repo/yum/下载MySQL源:wgethttp://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装MySql源yum-yinstallmysql57-community-release-el7-11.noarch.rpm查看一下安装效果yumrepolistenabled|grepmysq......