Merge 混合/合并

实现功能:当记录匹配时,更新数据,不匹配时,插入数据

Merge into table1 t1    -- 混入table1
using table2 t2         -- 用来对比的表on (t1.id = t2.id)      -- 对比条件
when matched then       -- 如果 匹配update set t1.name=t2.name
when not matched then   -- 如果 不匹配insert values(t2.id,t2.name)## 存在这样两张表
>>> table1
ID  |  NAME
----|-----------1  |  LUE2  |  Mark1>>> table2
ID  |  NAME
----|-----------2  |  Mark23  |  Care# 执行后 table1ID |  NAME
----|-----------1  |  LUE2  |  Mark23  |  Care
复制代码

Minus 差集

实现功能:取表1内和表2不同的数据

select * from table1
minus
select * from table2## 存在这样两张表
>>> table1
ID  |  NAME
----|-----------1  |  LUE2  |  Mark1>>> table2
ID  |  NAME
----|-----------2  |  Mark13  |  Care# 查询结果为 ID |  NAME
----|-----------1  |  LUE
复制代码

Intersect 交集

实现功能:两表取交集

select * from t_table1
INTERSECT
select * from t_table2 >>> table1
ID  |  NAME
----|-----------1  |  LUE2  |  Mark1>>> table2
ID  |  NAME
----|-----------2  |  Mark13  |  Care# 查询结果为 ID |  NAME
----|-----------2  |  Mark1
复制代码

With

with newtable as
(
select 1 ,' lue ' name from dual
)
select * from newtable# 查询结果为 ID |  NAME
----|-----------1  |  lue
复制代码

Start With 树查询

几个单词:
Start With:开始条件
Connect By ... Prior树查询条件,Prior 代表上级的值

Select * From tablename     -- 查询表
[Where ...]                 -- 满足条件的
Start With ID = '00001'     -- 从ID = ‘00001’ 开始
Connect By Prior ID = PID   -- 上级(Prior)的ID = 本级的PID(或者其他什么条件)
复制代码

Over ... Partition By 分组查询

根据 partition by 进行分组 ,组内 order by 排序

select rank() over(partition by t.class order by t.sroce desc) mm from T2_TEMP t
复制代码

括号内的 partition by 、order by 之类的都可以省略,不会报错,根据业务要求各种拼接

row_number()、rank()和dense_rank() 排序号

· row_number() : 排到多少是多少,1 2 3 4 5 ... 排下去
· rank():排序时,如果相同的项会序号相同,例如:

31 、 32 、 32 、 33 、 34
# 排序后,序号为
1 2 2 4 5
复制代码

· dense_rank():排序时,如果相同的项会序号相同,和rank()区别在与 他是连续的,例如:

31 、 32 、 32 、 33 、 34
# 排序后,序号为
1 2 2 3 4
复制代码

first_value() 和 last_value() 第一行/最后一行

# srocetable 学生分数表
# name 姓名
# class 班级
# sroce 分数# 查询 每个班 成绩最高 的 学生的姓名
select first_value(name) over(partition by class order by sroce desc) from srocetable# 查询 每个班 成绩最低 的 学生的姓名
select last_value(name) over(partition by class order by sroce desc) from srocetable
复制代码

同理其他

count() 求分组后的总数
max() 求分组后的最大值
min() 求分组后的最小值
avg() 求分组后的平均值
lag() 取出前n行数据
lead() 取出后n行数据
ratio_to_report() 括号中就是分子,over() 括号中就是分母 (等同于 当前括号内的分子 / 分组内该列的总和) percent_rank() 百分比排名 意思是 能排到整体的百分之多少 (等同于 排名 / 总人数 )

Oracle · 一些实用语法相关推荐

  1. Oracle数据库实用脚本

    以下是Maclean.Liu所编写或收集的Oracle数据库实用脚本的列表,在这里分享一下: Script:收集Enterprise Manager Grid Control/Agent/Databa ...

  2. oracle存储过程循环单列,Oracle存储过程循环语法实例分析

    本文实例讲述了Oracle存储过程循环语法.分享给大家供大家参考,具体如下: 1.简单循环 语法 sql;"> loop statements; end loop; 例子: sql;& ...

  3. oracle中触发器的语法,解析Oracle触发器的语法

    导读:触发器是一种特殊的存储过程,触发器的执行不是由程序调用,也不是手工启动,而是由事件来触发,Oracle数据库是大家非常熟悉的数据库系统啦,那么Oracle触发器的语法是怎样的呢?下文中将为大家带 ...

  4. Oracle存储过程基本语法介绍

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  5. oracle语法和sql的区别吗,ORACLE和SQL语法区别归纳

    ORACLE和SQL语法区别归纳 数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServ ...

  6. oracle stdevp函数,ORACLE和SQL语法区别归纳整理.doc

    ORACLE和SQL语法区别归纳整理 一.数据类型比较⑴.字符数据类型?? CHAR?? CHAR?? 都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb变长 ...

  7. oracle apex global,Oracle Apex 实用笔记系列 1 - Oracle Apex 调试技巧

    1. 理解Oracle Apex Url语法 一个Oracle Apex Url例子看上去像下面: http://myhost.mycompany.com/myservice/f?p=1023:1:2 ...

  8. oracle apex 日志,Oracle Apex 实用笔记系列 1 - Oracle Apex 调试技巧

    1. 理解Oracle Apex Url语法 一个Oracle Apex Url例子看上去像下面: http://myhost.mycompany.com/myservice/f?p=1023:1:2 ...

  9. oracle 存储过程基本语法

    oracle 存储过程基本语法 分类: Oracle 存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法---- ...

最新文章

  1. java实现在pdf文档上填充内容
  2. S3C2440时钟体系结构
  3. SQL语句 SELECT LIKE用法详解
  4. tomcat 默认站点的配置
  5. maven打包报错You have to use a classifier to attach supplemental artifacts to the project instead of rep
  6. python去重复字符串_python3取出重复3次的字符串保存为3列
  7. 交换ctrl和左caps_如何在Linux中交换Ctrl和Caps Lock键
  8. 计算机培训三下乡实践报告,暑期“三下乡”社会实践心得体会范文
  9. Web项目中使用Spring 3.x + Quartz 2.x实现作业调度详解
  10. python float转化为int_python – 将矩阵的某些列从float转换为int
  11. WIN7视觉保护色设置(附图)
  12. js中如何解决跨域问题
  13. Unity内存/GC优化方法
  14. 五个学习管理系统的优点
  15. 【SQL Server】 类型转换TRY_PARSE(字符转日期)
  16. python填补缺失值数据驱动代码_python填补缺失值数据驱动代码_python数据预处理之缺失值的各种填补方式...
  17. Python基础(十二)——循环语句
  18. proteus教程——cc4021串行输入
  19. K-均值聚类算法(k-means)的C++实现
  20. 游戏音乐制作不但要用音乐吸引玩家,还要突出游戏背景

热门文章

  1. Spring - Configuration Metadata
  2. 【转】TeXmacs:一个真正“所见即所得”的排版系统
  3. 软件设计 -- 流程图的重要性
  4. MongoDB学习笔记lt;七gt;
  5. 腾讯安全上海游戏部门笔试题
  6. RAID简单介绍和Linux如何搭建一个RAID
  7. 无core文件根据系统日志查找 程序core信息
  8. 配置linux普通用户无密码执行sudo命令
  9. ActiveMQ 使用文档
  10. 2010年一月份兑换公告