Oracle · 一些实用语法
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 · 一些实用语法相关推荐
- Oracle数据库实用脚本
以下是Maclean.Liu所编写或收集的Oracle数据库实用脚本的列表,在这里分享一下: Script:收集Enterprise Manager Grid Control/Agent/Databa ...
- oracle存储过程循环单列,Oracle存储过程循环语法实例分析
本文实例讲述了Oracle存储过程循环语法.分享给大家供大家参考,具体如下: 1.简单循环 语法 sql;"> loop statements; end loop; 例子: sql;& ...
- oracle中触发器的语法,解析Oracle触发器的语法
导读:触发器是一种特殊的存储过程,触发器的执行不是由程序调用,也不是手工启动,而是由事件来触发,Oracle数据库是大家非常熟悉的数据库系统啦,那么Oracle触发器的语法是怎样的呢?下文中将为大家带 ...
- Oracle存储过程基本语法介绍
Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...
- oracle语法和sql的区别吗,ORACLE和SQL语法区别归纳
ORACLE和SQL语法区别归纳 数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServ ...
- oracle stdevp函数,ORACLE和SQL语法区别归纳整理.doc
ORACLE和SQL语法区别归纳整理 一.数据类型比较⑴.字符数据类型?? CHAR?? CHAR?? 都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb变长 ...
- 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 ...
- oracle apex 日志,Oracle Apex 实用笔记系列 1 - Oracle Apex 调试技巧
1. 理解Oracle Apex Url语法 一个Oracle Apex Url例子看上去像下面: http://myhost.mycompany.com/myservice/f?p=1023:1:2 ...
- oracle 存储过程基本语法
oracle 存储过程基本语法 分类: Oracle 存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法---- ...
最新文章
- java实现在pdf文档上填充内容
- S3C2440时钟体系结构
- SQL语句 SELECT LIKE用法详解
- tomcat 默认站点的配置
- maven打包报错You have to use a classifier to attach supplemental artifacts to the project instead of rep
- python去重复字符串_python3取出重复3次的字符串保存为3列
- 交换ctrl和左caps_如何在Linux中交换Ctrl和Caps Lock键
- 计算机培训三下乡实践报告,暑期“三下乡”社会实践心得体会范文
- Web项目中使用Spring 3.x + Quartz 2.x实现作业调度详解
- python float转化为int_python – 将矩阵的某些列从float转换为int
- WIN7视觉保护色设置(附图)
- js中如何解决跨域问题
- Unity内存/GC优化方法
- 五个学习管理系统的优点
- 【SQL Server】 类型转换TRY_PARSE(字符转日期)
- python填补缺失值数据驱动代码_python填补缺失值数据驱动代码_python数据预处理之缺失值的各种填补方式...
- Python基础(十二)——循环语句
- proteus教程——cc4021串行输入
- K-均值聚类算法(k-means)的C++实现
- 游戏音乐制作不但要用音乐吸引玩家,还要突出游戏背景