Oracle 关键字、高级函数的使用
1.序列、唯一标识
查询时,可以添加递增序列 rownum
表的数据每一行都有一个唯一的标识 rowid
2.函数
单行:查询多条数据
如:to_date()
多行:查询总结数据,一般用于group by
如:sum()
3.去重 distinct
select distinct from tablename
4.分区 partition
select tenantcode,row_number() over(partition by tenantcode order by tenantcode, brandcode, storecode ) groupid
from tablename
若要分区筛选出id=1的,可以
select * from(
select tenantcode,row_number() over(partition by tenantcode order by tenantcode, brandcode, storecode) groupid
from tablename
)
where groupid=
row_number为直接排序,还可以替换成以下函数
rank(): 跳跃排序,如果有两个第一级时,接下来就是第三级。
dense_rank(): 连续排序,如果有两个第一级时,接下来仍然是第二级。
5.行列转换
模拟表
With t as (
Select id,'桃子' name, q1, q2, q3, q4 from dual
Union
Select id,'苹果' name, q1, q2, q3, q4 from dual
Union
Select id,'西瓜' name, q1, q2, q3, q4 from dual
)
列转行
Select * from t unpivot(nums for jidu in (q1,q2,q3,q4)) order by id;
行转列
With t as (
Select id,'桃子' name, q1, q2, q3, q4 from dual
Union
Select id,'苹果' name, q1, q2, q3, q4 from dual
Union
Select id,'西瓜' name, q1, q2, q3, q4 from dual
),
bb as(
Select * from t unpivot(nums for jidu in (q1,q2,q3,q4)) order by id
) Select * from bb pivot(max(nums) for jidu in ('Q1' Q1,'Q2' Q2,'Q3' Q3,'Q4' Q4)) --这里的max是如果有多行,选择最大,比如桃子有两个Q1
6.null值置顶或垫底
select * from langmap order by lang4 nulls first/last
6.存在则更新,不存在则新增
merge into v5_tenant_repair_appl_follow f
using (select '' ra_id,'test' ra_staffcode from dual) n
on(f.ra_id=n.ra_id)
when matched then
update set f.ra_staffcode=n.ra_staffcode
when not matched then
insert values(n.ra_id,n.ra_staffcode)
7.占比
select a.ra_id,a.ra_charge,
ratio_to_report(a.ra_charge) over() pct
from v5_tenant_repair_appl a
pct表示该行的ra_charge所占比例
over():可以用参数 partition by [字段] 进行分组,从而查询分组后ra_charge所占比例
8.选择第一个非空数据
select coalesce(null,null,,null) from dual;
9.字节替换
select translate('ab123', 'abcdefg123', '3456789abc') from dual;
第一个参数:输入的字符串
第二个参数、第三个参数:替换规则,字节按顺序一一对应替换
上式代码结果:34abc
Oracle 关键字、高级函数的使用的更多相关文章
- oracle 高级函数2
原 oracle 高级函数 2017年08月17日 16:44:19 阅读数:1731 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013278 ...
- oracle 高级函数
原 oracle 高级函数 2017年08月17日 16:44:19 阅读数:1731 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013278 ...
- Oracle各种连接函数总结
1.前言 Oracle可用连接函数会介绍以下几个 Oracle列转行函数 Listagg() strcat() wmsys.wm_concat() 2.Oracle列转行函数 Listagg() 2. ...
- Oracle过程及函数的参数模式,In、out、in out模式
Oracle过程及函数的参数模式 In.out.in out模式 在Oracle中过程与函数都可以有参数,参数的类型可以指定为in.out.in out三种模式. 三种参数的具体说明,如下图所示: ( ...
- ORACLE 常用字符函数
ORACLE 常用字符函数1 ASCII(arg1)返回参数arg1的十进制数字表示.如果数据库设置为ASCII,则采用的是ASCII码字符.如果设置为EBCDIC,则采用的是EBCDIC字符 sel ...
- oracle的nvl函数的使用解析
Oracle的Nvl函数 nvl( ) 函数 从两个表达式返回一个非null 值. 语法 NVL(eExpression1, eExpression2) 参数 eExpression1, eExpre ...
- oracle常用高级sql---1
Oracle/Sql高级篇 1.TOP 子句 TOP 子句用于规定要返回的记录的数目. 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的. SELECT TOP number|percen ...
- ORACLE当中自定义函数性优化浅析
为什么函数影响性能 在SQL语句中,如果不合理的使用函数(Function)就会严重影响性能,其实这里想说的是PL/SQL中的自定义函数,反而对于一些内置函数而言,影响性能的可能性较小.那么为什么SQ ...
- SQL入门(2): Oracle内置函数-字符/数值/日期/转换/NVL/分析函数与窗口函数/case_decode
本文介绍Oracle 的内置函数. 常用! 一. 字符函数 ASCII 码与字符的转化函数 chr(n) 例如 select chr(65) || chr(66) || chr(67) , ch ...
- Oracle SQL高级编程——分析函数(窗口函数)全面讲解
Oracle SQL高级编程--分析函数(窗口函数)全面讲解 注:本文来源于:<Oracle SQL高级编程--分析函数(窗口函数)全面讲解> 概述 分析函数是以一定的方法在一个与当前行相 ...
随机推荐
- 如何给python程序加密
在实际的工作中,有时候我们需要部署自己的Python应用,但这时候我们并不希望别人能够看到自己的Python源程序.因此,我们需要为自己的源代码进行加密,Python已经为我们提供了这样一套工作机制. ...
- identity server4 证书
我们需要对token进行签名, 这意味着identity server需要一对public和private key. 幸运的是, 我们可以告诉identity server在程序的运行时候对这项工作进 ...
- Python小数据池和字典操作
小数据池 #id 查看内存地址 #多个代码块可以使用小数据池 #一个代码块中有一个问题,就是重复使用 #数字 -5~256 #字符串 字符串 乘法总数长度不能超过20, 0,1除外 #不能有特殊字符 ...
- c# winform 多屏显示
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- 你不知道的 requestIdleCallback
本文副标题是 Request Schedule 源码解析一.在本章中会介绍 requestIdleCallback 的用法以及其缺陷, 接着对 React 团队对该 api 的 hack 部分的源码进 ...
- 人撒娇地撒基督教扫ID祭扫我京东is啊单间
下下卷惜西,清首花我下望心如单水.低如见惜折 卷水满门我,如二折莲开低下悠子鸦.南水水暮洲 凄暮红过在,莫处言树鸿怀莲绿门莲.杆鸿中花海 见门塘采心,何西杏知底底梅即色花.红两霜言海 秋飞曲杆明,花南 ...
- 小程序——阿里服务器配置https及什么是IIS
1.申请域名:阿里云 2.免费开启SSL证书:管理=>免费开启SSL证书>单域名>dev.xxx.top 3.配置服务器:下载=>IIS7证书 *注册一个域名,可以免费开启一个 ...
- ABP拦截器之UnitOfWorkRegistrar(一)
ABP中UnitOfWorkRegistrar拦截器是整个ABP中非常关键的一个部分,这个部分在整个业务系统中也是用的最多的一个部分,这篇文章的主要思路并不是写如何使用ABP中的UnitOfWork, ...
- MySQL系列:数据类型、运算符及函数(5)
1. 数据类型 MySQL支持多种数据类型,主要有数值类型.日期/时间类型和字符串类型. (1)数值类型:包括整数类型:TINYINT.SMALLINT.MEDIUMINT.INT.BIGINT, ...
- sql-josn
1 select fname,fdistrict ,famount from sale for json auto---最简单方式[{"name":"name1" ...