函数

  • 单行函数:对一行数据进行操作的函数,如字符串函数、数值函数、转换函数、日期函数等。
  • 聚合函数:同时对多行数据进行操作,如求和函数等。

字符串函数

函数 说明
ASCII(X) 求字符X的ASCII码
CHR(X) 求ASCII码对应的字符
LENGTH(X) 求字符串X的字符长度
CONCATA(X,Y) 连接X和Y两个字符串
INSTR(X,Y[,START]) 查找在字符串X中字符串Y的位置,可以指定从Start位置开始搜索,默认从头开始
LOWER(X) 把字符串中大写字母转换为小写
UPPER(X) 把字符串中小写字母转换为大写
INITCAP(X) 把字符串中所有单词首字母转换为大写,其余小写
LTRIM(X[,Y]) 去掉字符串X左边的Y字符串,Y不填时,默认的是字符串X左边去空格
RTRIM(X[,Y]) 去掉字符串X右边的Y字符串,Y不填时,默认的是字符串X右边去空格
TRIM(X[,Y]) 去掉字符串X两边的Y字符串,Y不填时,默认的是字符串X左右去空格
REPLACE(X,old,new) 将字符串中的old字符替换为new字符
SUBSTR(X,start[,length]) 截取字符串X,从start位置开始截取长度为length的字符串,length不填默认为截取到字符串X末尾
RPAD(X,length[,Y]) 对字符串X进行右补字符Y使字符串长度达到length长度
LPAD(X,length[,Y]) 对字符串X进行左补字符Y使字符串长度达到length长度

日期函数

函数 说明
sysdate() 系统的当前时间
systimestamp() 系统的当前时间,包含时区信息,精确到微秒
dbtimezone() 返回数据库时区
ADD_MONTHS(r,n) 返回在指定日期r上加上月份n后的日期,n可以为负数
LAST_DAY(r) 返回指定r日期的当前月份的最后一天的日期
NEXT_DAY(r,c) 返回指定r日期后的星期几c对应的日期
EXTRACT(time) 返回指定time时间当中的年月日、时分秒等特定部分
MONTHS_BETWEEN(r1,r2) 返回两个日期间的月份数,结果是正数、负数、小数
ROUND(r[,f]) 将日期r按f的格式进行四舍五入
TRUNC(r[,f]) 将日期r按f的格式进行截取
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select systimestamp from dual;
select dbtimezone from dual; -- 结果为 2018-11-30,2018-10-31
select
to_char(add_months(to_date('2018-10-31','yyyy-mm-dd'),1),'yyyy-mm-dd'),
to_char(add_months(to_date('2018-09-30','yyyy-mm-dd'),1),'yyyy-mm-dd')
from dual; select last_day(sysdate) from dual; select next_day(to_date('2018-11-12','yyyy-mm-dd'),'星期四') from dual; select extract(year from timestamp '2018-11-12 15:36:01') as year,
extract(month from timestamp '2018-11-12 15:36:01') as month,
extract(day from timestamp '2018-11-12 15:36:01') as day,
extract(minute from timestamp '2018-11-12 15:36:01') as minute,
extract(second from timestamp '2018-11-12 15:36:01') as second
from dual; select months_between(to_date('2018-11-12', 'yyyy-mm-dd'),
to_date('2017-11-12', 'yyyy-mm-dd')) as zs, --整数
months_between(to_date('2018-11-12', 'yyyy-mm-dd'),
to_date('2017-10-11', 'yyyy-mm-dd')) as xs, --小数
months_between(to_date('2017-11-12', 'yyyy-mm-dd'),
to_date('2018-10-12', 'yyyy-mm-dd')) as fs --负数
from dual; select sysdate, --当前时间
round(sysdate, 'yyyy') as year, --按年
round(sysdate, 'mm') as month, --按月
round(sysdate, 'dd') as day, --按天
round(sysdate) as mr_day, --默认不填按天
round(sysdate, 'hh24') as hour --按小时
from dual; select sysdate, --当前时间
trunc(sysdate, 'yyyy') as year, --按年
trunc(sysdate, 'mm') as month, --按月
trunc(sysdate, 'dd') as day, --按天
trunc(sysdate) as mr_day, --默认不填按天
trunc(sysdate, 'hh24') as hour --按小时
from dual;

数值函数

函数 解释
ABS(X) 求数值X的绝对值
COS(X) 求数值X的余弦
ACOS(X) 求数值X的反余弦
CEIL(X) 向上取整
FLOOR(X) 向下取整
log(x,y) 求x为底y的对数
mod(x,y) 求x除以y的余数
power(x,y) 求x的y次幂
sqrt(x) 求x的平方根
round(x[,y]) 求数值x在y位进行四舍五入。y默认为0,可以为负数
trunc(x[,y]) 求数值x在y位进行直接截取。y默认为0,可以为负数

转换函数

函数 解释
asciistr(x) 把字符串转换为数据库字符集对应的ASCII值
bin_to_num(x1[x2...]) 二进制数值转换为十进制数值
cast(x as type) 把x转换为type类型的数据
convert(x,d_chset[,r_chset]) 对字符串x按原字符集r_chset转换为目标字符集d_chset
to_char(x[,f]) 把字符串或时间类型x按格式f转换为字符串
to_date(x[,f]) 把字符串x按照格式f转换为时间类型
to_number(x[,f]) 把字符串x按照格式f转换为数值类型

其中数值的格式f可以参考下表:

参数 示例 说明
9 999 指定位置返回数字
. 99.9 指定小数点的位置
99,9 指定位置返回一个逗号
$ $99.9 指定开头返回一个美元符号
EEEE 9.99EEEE 指定科学计数法

聚合函数

函数 解释
AVG([distinct ] expr) 求列或列组成的表达式expr的平均值
count(*|[distinct]expr) 计算查询结果的条数或行数
MAX([distinct] expr) 指定列或列组成的表达式expr中的最大值
MIN([distinct] expr) 指定列或列组成的表达式expr中的最小值
SUM([distinct] expr) 对指定列或列组成的表达式expr进行求和
select classno, avg(t.age) from stuinfo t where t.age < 30 group by t.classno;

select classno, sum(age), count(*), sum(age) / count(*), avg(age) from stuinfo t where t.age < 30 group by t.classno;

[学习笔记] Oracle字符串函数、日期函数、数值函数、转换函数、聚合函数的更多相关文章

  1. matlab学习笔记10_6 字符串与数值间的转换以及进制之间的转换

    一起来学matlab-matlab学习笔记10 10_6 字符串与数值间的转换以及进制之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合 ...

  2. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...

  3. 「学习笔记」字符串基础:Hash,KMP与Trie

    「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...

  4. 【学习笔记】字符串—马拉车(Manacher)

    [学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...

  5. javaSE学习笔记(15) ---缓冲流、转换流、序列化流

    javaSE学习笔记(15) ---缓冲流.转换流.序列化流 缓冲流 昨天复习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化 ...

  6. Oracle学习笔记_09_字符串相关函数

    二.参考资料 0.Oracle中的字符串类型及相关函数详解 1.ORACLE 字符串操作 2.oracle函数大全-字符串处理函数

  7. C++ 学习笔记 (六) 继承- 子类与父类有同名函数,变量

    学习了类的继承,今天说一下当父类与子类中有同名函数和变量时那么程序将怎么执行.首先明确当基类和子类有同名函数或者变量时,子类依然从父类继承. 举例说明: 例程说明: 父类和子类有同名的成员 data: ...

  8. Vue学习笔记十一:按键修饰符和自定义指令(钩子函数)

    目录 padStart:补位 按键修饰符 Vue提供的按键修饰符 自定义按键修饰符 自定义指令 自定义指令的使用 钩子函数 钩子函数参数 使用钩子函数的bingding参数 私有自定义指令 钩子函数的 ...

  9. python学习笔记-(七)python基础--集合、文件操作&函数

    本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...

随机推荐

  1. Function overloading and const keyword

    Predict the output of following C++ program. 1 #include<iostream> 2 using namespace std; 3 4 c ...

  2. Spring(2):依赖注入DI

    依赖注入DI 当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例.但在Spring里,创建被 ...

  3. IDEA 使用rest client测试

    一.进入 rest 控制台 idea 导航栏 ==> Tools ==> HTTP Client ==> Test RESTFUL Web Service 如图: 一般来说,idea ...

  4. 关于ssh-keygen 生成的key以“BEGIN OPENSSH PRIVATE KEY”开头

    现在使用命令 ssh-keygen -t rsa  生成ssh,默认是以新的格式生成,id_rsa的第一行变成了"BEGIN OPENSSH PRIVATE KEY" 而不在是&q ...

  5. java多线程3:synchronized

    线程安全 多个线程共同访问一个对象的实例变量,那么就可能出现线程不安全的问题. 先看一段代码示例,定义一个对象 MyDomain1 public class MyDomain1 { private i ...

  6. Linux目录终章,单用户模式修改密码、环境变量、第三方软件安装

    目录 今日内容概要 内容详细 解析映射文件 磁盘挂载文件 开机加载脚本 系统启动级别 使用单用户模式修改密码 变量加载文件 登录提示信息 第三方软件安装目录(编译安装目录) 系统日志目录 保存系统运行 ...

  7. .gitignore文件作用

    目录 一.简介 二.常用规则 三.详细 一.简介 一般来说每个Git项目中都需要一个.gitignore文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中. 意思就是本地修改完项目后,上 ...

  8. AD小白如何发板厂制板--导出gerber文件和钻孔文件+嘉立创下单教程

    AD如何发工程制板子? 方式1,发PCB源文件给板厂 方式2,发一些工艺文件给板厂,这样就无须泄漏你的PCB源文件了,一个硬件工程师必须要掌握方式2. 方式2要做的就是导出gerber文件和钻孔文件, ...

  9. [BUUCTF]PWN——[V&N2020 公开赛]warmup

    [V&N2020 公开赛]warmup 附件 步骤: 例行检查,64位程序,除了canary,其他保护都开 本地运行一下,看看大概的情况 64位ida载入,从main函数开始看程序 看到程序将 ...

  10. &pwn1_sctf_2016 &ciscn_2019_n_1 &ciscn_2019_c_1 &ciscn_2019_en_2&

    在做buu题目的时候,发现在最上面有几道被各位师傅打到1分的题,强迫症逼迫我去做那几道题. 这里来试着去解决这些题...讲真的,我感觉自己刷题真的少,即使是很简单的栈题目,我还是能学习到新的东西.这里 ...