Oracle 系统函数
| 函数名称 | 返回值类型 | 说明 | 示例 | |
| 字符串函数 | ascii(str) | number | 返回str首字母的ASCII码 | 
select ascii('A') from dual; --65
 | 
| chr(num) | char | 返回ASCII码为num的字符 | 
select chr(65) from dual;--'A'  | 
|
| concat(p1,p2) | char | 将p2拼接在p1后边 | 
select concat(10, 20) from dual; --1020  | 
|
| initcap(p) | char | 将p的首字母大写,其他字母小写 | 
select initcap('ABCD') from dual; --Abcd
 | 
|
| 
 instr(p1,p2[,i[,j]])  | 
number | 返回p2中第i位开始到p2结束这个字符串在p1中第j次出现的位置 | 
select instr('aabbabab', 'ab') from dual; --'ab'在'aabbabab'中第一次出现的位置   2
 | 
|
| instrb(p1,p2[,i[,j]]) | number | 与函数instr(p1,p2[,i[,j]])的作用相同,但是按字节计算 | 
select instrb('我我要要我要我要', '我要') from dual; --'我要'在'我我要要我要我要'中第一次出现的位置   3
 | 
|
| length(p) | number | 返回参数p的长度值 | 
select length('abc') from dual; --3
 | 
|
| lengthb(p) | number | 返回参数p的字节数 | 
select lengthb('abc') from dual; --3
 | 
|
| lower(p) | char | 将参数p转换为小写 | 
select lower('ABCD') from dual; --'abcd'
 | 
|
| upper(p) | char | 
 将参数p转换为大写  | 
select upper('abcd') from dual; --'ABCD
 | 
|
| lpad(p1,i[,p2]) | char | 在p1的左侧填充p2,使其长度为i | 
select lpad(123, 5, 0) from dual; --'00123'  | 
|
| ltrim(p1,p2) | char | 
 去掉p1左边开头连续存在的字符p2  | 
select lpad(123, 5, 0) from dual; --'00123'  | 
|
| rpad(p1,i[,p2]) | char | 在p1的右侧填充p2,使其长度为i | 
select rpad(123, 5, 0) from dual; --'12300'  | 
|
| rtrim(p1,p2) | char | 去掉p1右边结尾连续存在的字符p2 | 
select rtrim('aabbcc', 'b') from dual; --'aabbcc'
 | 
|
| replace(p1,p2[,p3]) | char | 用p3替换掉p1中存在的p2 | 
select replace('abcabc', 'c') from dual; --'abab'
 | 
|
| reverse(p) | char | 返回字符串p的倒叙排列 | 
select reverse('123') from dual; --'321'
 | 
|
| substr(p1,i[,j]) | char | 从p1中的i位置开始,截取长度为j的字符串 | 
select substr('abcdefg', 3) from dual; --'cdefg'
 | 
|
| substrb(p1,i[,j]) | char | 从p中的第i个字节开始,截取长度为j个字节的字符串 | 
select substrb('123456', 2, 3) from dual; --'234'
 | 
|
| soundex(p) | char | 返回由4个字符组成的字符串,其中第一个字符为p的首字母,后3位为数字,可用来表示两个单词发音的相似度(忽略所有元音、字母 y、连写字母和字母 h) | 
--两个单词发音一致  | 
|
| translate(p1,p2,p3) | char | 
 用p3替换掉p1中存在的p2  | 
select translate('abcabc', 'c', 'd') from dual; --'abdabd' 
 | 
|
| trim(p) | char | 
 删除p首部和尾部的空格  | 
select trim(' abc ') from dual; --'abc' | |
| 正则表达式函数 | regexp_like(colname,pattern) | 布尔 | 与like的功能相似,如果colname列的值满足正则表达式regex,则返回该行数据 | 
--查询数据表emp中ename的值以A、B开头的多有数据行  | 
| 
 regexp_instr(source,pattern [,position [,occurrence [,return_option [,match_parameter ]]]])  | 
number | 
 与instr的功能相似 ,返回字符串中与正则表达式pattern匹配的字符的位置  | 
参数说明:  | 
|
| 
 regexp_substr(source,pattern [,position [,occurrence [,match_parameter ]]])  | 
char | 与substr的功能相似,截取字符串中与正则表达式pattern匹配的字符 | 
select regexp_substr('abcd,aabccd,aefdacd','[^,]+') from dual;--'abcd'
 | 
|
| 
 retexp_replace(source,pattern [,replace_string [,position [,occurrence [,match_parameter ]]]])  | 
char | 与replace的功能相似 ,将符合正则表达式的字符替换为新的字符 | 
select regexp_replace('abCdEFGhiJK', '[a-z]') from dual; --'CEFGJK'
 | 
|
| 数字函数 | abs(p) | number | 返回参数的绝对值 | 
select abs(123) from dual; --123  | 
| cos(p) | number | 返回参数的余弦值 | ||
| sin(p) | number | 返回参数的正弦值 | ||
| tan(p) | number | 返回参数的正切值 | ||
| acos(p) | number | 反余弦函数,返回-1到1之间的数 | ||
| asin(p) | number | 反正弦函数,返回-1到1之间的数 | ||
| atan(p) | number | 反正切函数,返回p的反正切值 | ||
| cosh(p) | number | 返回参数的双曲余弦值 | ||
| sinh(p) | number | 返回参数的双曲正弦值 | ||
| tanh(p) | number | 返回参数的双曲正切值 | ||
| ceil(p) | number | 返回大于等于p的最小整数 | 
select ceil(1.3) from dual; --2  | 
|
| floop(p) | number | 返回小于等于p的最大整数 | 
select floor(1.56) from dual; --1  | 
|
| exp(p) | number | 返回e的p次幂,e=2.71828183 | select exp(2) from dual; --7.38905609893065 | |
| ln(p) | number | 返回p的自然对数,p>0 | select ln(2.71828183) from dual; --1.00000000056689 | |
| log(i,j) | number | 返回以i为底j的对数 | select log(10, 100) from dual; --2 | |
| mod(i,j) | number | 返回i除以j的余数 | 
select mod(10, 3) from dual; --1  | 
|
| power(i,j) | number | 返回i的j次方 | 
select power(10, 2) from dual; --100  | 
|
| round(i[,j]) | number | 返回对i进行四舍五入后的值,j是保留小数位(可以是0、整数、负数) | 
select round(123.456) from dual; --123  | 
|
| sign(p) | number | p=0,返回0;p>0,返回1;p<0,返回-1 | 
select sign(0) from dual; --0  | 
|
| sqrt(p) | number | 返回参数的平方根 | 
select sqrt(100) from dual; --10  | 
|
| trunc(i,j) | number | 返回i保留j位小数的值,不进行四舍五入(j可以是0、整数、负数) | 
select trunc(123.456) from dual; --123  | 
|
| 转换函数 | convert(p,ds[,ss]) | char | 将参数从ss字符集转换为ds字符集 | 
select convert('你好', 'utf8', 'zhs16gbk') from dual; --'浣犲ソ'
 | 
| hextoraw(p) | char | 将16进制的参数转换为raw类型 | select hextoraw('abcdef') from dual; --'ABCDEF' | |
| rawtohex(p) | char | 将raw类型的参数转换为16进制 | 
select rawtohex('AA') from dual; --'4141'
 | 
|
| rawidtochar(p) | char | 将rawid类型的参数转换为char类型 | ||
| cast | 不定 | 将某种类型转换为另一种类型 | 
select cast('123' as number(6,2)) from dual; --123.00
 | 
|
| to_char(p[,fmt]) | char | 将参数p转换为char类型,如果p为date类型,则可以将其转换为指定格式的字符 | 
select to_char(123) from dual; --'123'  | 
|
| to_date(s,fmt) | date | 将字符转换为指定格式的date类型 | 
select to_date('2017-09-06', 'YYYY-MM-DD') from dual; --'2017.9.6
 | 
|
| to_multi_byte(p) | char | 将单字节字符转换为双字节字符 | 
select lengthb('a') from dual; --1
 | 
|
| to_number(p) | number | 将参数转换为数字 | select to_number('123') from dual; --123 | |
| to_single_byte() | char | 将双字节字符转换为单字节字符 | 
select lengthb('a') from dual; --1
 | 
|
| 日期函数 | add_months(d,i) | date | 获取在日期d上加i个月后的日期 | 
select add_months(to_date('2017-09-06', 'YYYY-MM-DD'), 2) from dual; --2017.11.6 
 | 
| last_day(d) | date | 获取日期d中月份最后一天的日期 | 
select last_day(to_date('2017-02-06', 'YYYY-MM-DD')) from dual; --2017.2.28
 | 
|
| months_between(d1,d2) | number | 
 获取日期d1、d2相差几个月  | 
select months_between(to_date('2017-02-06', 'YYYY-MM-DD'), to_date('2017-09-06', 'YYYY-MM-DD')) from dual;--  -7
 | 
|
| new_time(d,tz1,tz2) | date | 将日期d从tz1时区转换为tz2时区 | select new_time(sysdate, 'GMT', 'CST') from dual; --2017.9.6 16:38:47 | |
| next_day(d,w) | date | 获取日期d后的下一个星期w(1-7对应周日-周六) | 
select next_day(to_date('2017-09-06'), 4) from dual; --'2017.9.13'
 | 
|
| round(d,fmt) | date | 返回日期d按照指定格式舍入后日期的第一天 | 
select round(to_date('2017-05-06', 'YYYY-MM-DD'), 'YYYY') from dual; --'2017.1.1'
 | 
|
| trunc(d,fmt) | date | 返回日期d按照指定格式截取后日期的第一天 | 
select trunc(to_date('2017-05-06', 'YYYY-MM-DD'), 'YYYY') from dual; --'2017.1.1'
 | 
|
| sysdate | date | 获取当前系统时间 | 
select sysdate from dual; --'2017-09-06 22:13:14'  | 
|
| extract | char | 截取日期中的指定字段 | 
-- 获取日期中的年份  | 
|
| 聚合函数 | avg(col) | number | 返回col列的平均值 | 
select avg(sal) from emp;  | 
| count(col|*) | number | 返回列col的行数,*表示所有行 | 
select count(ename) from emp;  | 
|
| max(col) | 不定 | 返回列col中的最大值 | 
select max(sal) from emp;  | 
|
| min(col) | 不定 | 返回列col中的最小值 | 
select min(sal) from emp;  | 
|
| stddev(col) | number | 返回列col的标准差,标准差是方差的平方根 | 
select stddev(sal) from emp;  | 
|
| sum(col) | number | 返回列col的总和 | 
select sum(sal) from emp;  | 
|
| variance(col) | number | 返回列col的统计方差 | 
select variance(sal) from emp;  | 
|
| wm_concat(col) | char | 返回列col的合并行,用逗号分隔 | 
--获取每个部门中的员工姓名  | 
|
| nvl(col,p) | char | 如果col的值为空,就用p代替 | 
select nvl(null,'HH') from dual; --'HH'  | 
|
| decode(col,p1,s1,p2,s2...sn) | char | 为指定列的每个值指定一个对应的新值,如果没有指定 | 
select e.*,decode(deptno,10,'1班',20,'2班',30,'3班',40,'4班','没有对应班级') from emp e;  | 
|
Oracle 系统函数的更多相关文章
- oracle系统函数(日期函数)
		
oracle系统函数(日期函数) 调用日期函数时,首先要明确两个概念,时间戳和日期是不同的,日期中包括年月日但不包括小时分钟秒,时间戳包括年月日小时分钟秒.在oracle中,一般情况下,函数中包含da ...
 - Oracle的学习三:java连接Oracle、事务、内置函数、日期函数、转换函数、系统函数
		
1.java程序操作Oracle java连接Oracle JDBC_ODBC桥连接 1.加载驱动: Class.forName("sun.jdbc.odbc.JdbcodbcDriver& ...
 - .Net程序员学用Oracle系列(9):系统函数(上)
		
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.字符函数 1.1.字符函数简介 1.2.语法说明及案例 2.数字函数 2.1.数字函数简介 2.2.语法说明及案例 3.日期 ...
 - .Net程序员学用Oracle系列(11):系统函数(下)
		
1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 R ...
 - oracle常用系统函数
		
一.字符类函数 字符类函数是专门用于字符处理的函数,处理的对象可以是字符或者字符串常量,也可以是字符类型的列. 1.ASCII(c)和CHR(i) ASCII(c)函数用于返回一个字符的ASCII码, ...
 - 分享:Oracle 系统变量函数用法说明
		
在Oracle数据库中,Oracle系统变量函数是经常会使用到的函数,分享下Oracle系统变量函数的用法. Oracle函数多种多样,系统变量函数就是其中之一,介绍三种最常见的系统变量函数. Ora ...
 - Oracle SQL常用内置系统函数总结
		
Oracle数据库 内置系统函数主要分为以下类别:数学函数.字符串函数.日期函数.转换函数.聚合函数.分析聚合函数 一.数学函数 ------------返回数字 abs(n):返回数字 ...
 - Oracle中常用的系统函数
		
本文主要来梳理下Oracle中的常用的系统函数,掌握这些函数的使用,对于我们编写SQL语句或PL/SQL代码时很有帮助,所以这也是必须掌握的知识点. 本文主要包括以下函数介绍:1.字符串函数2. 数值 ...
 - 【Oracle】Oracle中常用的系统函数
		
Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能.函数可以接受零个或者多个输入参数,并返回一个输出结果.在Oracle还可以自定义函数,关于更多信息可以查 ...
 
随机推荐
- “==” 和 equals()的区别
			
※ "==" 和 equals()的区别 ※ == :比较. 基本数据类型比较的是值:. 引用类型比较的是地址值. ※ equals(Object o):1)不能比较基本数据类型, ...
 - OAuth2.0实战:认证、资源服务异常自定义!
			
大家好,我是不才陈某~ 这是<Spring Security 进阶>的第4篇文章,往期文章如下: 实战!Spring Boot Security+JWT前后端分离架构登录认证! 妹子始终没 ...
 - CPU的中断
			
目录 一.简介 二.具体 方式 硬中断 软中断 中断切换 网卡中断 三.中断查看 一.简介 中断其实就是由硬件或软件所发送的一种称为IRQ(中断请求)的信号.中断允许让设备,如键盘,串口卡,并口等设备 ...
 - ciscn_2019_s_3
			
拿到题目例行检查 64位程序开启了nx保护,将程序放入ida 看到没有system函数第一时间想到的就是泄露libc来做,后来才知道是我学识尚浅,需要用execve函数来做 进入main发现跳转到vu ...
 - CF749B Parallelogram is Back 题解
			
Content 给出平行四边形的三个顶点 \((x_1,y_1),(x_2,y_2),(x_3,y_3)\),求出所有可能的第四个顶点. 数据范围:\(\forall i\in[1,3],-1000\ ...
 - LuoguP7441 「EZEC-7」Erinnerung 题解
			
Content 给定 \(x,y,K\).定义两个数列 \(c,e\),其中 \(c_i=\begin{cases}x\cdot i&x\cdot i\leqslant K\\-K&\ ...
 - LuoguB2078 含 k 个 3 的数 题解
			
Content 给定一个数 \(n\),判断其数位中是否恰好有 \(k\) 个 \(3\). 数据范围:\(1<n\leqslant 10^{15}\),\(1<k\leqslant 15 ...
 - LuoguP7072 [CSP-J2020] 直播获奖 题解
			
Update \(\texttt{2020.11.13}\) 修改了一个小细节. \(\texttt{2020.11.16}\) 修改了一个错误. Content 有一场 \(n\) 个人的比赛,计划 ...
 - HTML行内级元素之间的空格问题
			
HTML行内级元素之间的空格问题 1.为什么元素之间会产生空格? 在编写行内级元素(包括inline-block元素)的代码之间如果有空格(换行),在浏览器上就会显示元素之间有空格. 示例代码如下: ...
 - shell判断新字符串列表是否在老字符串列表中
			
for sn in `cat 12.30-new`;do if ! [[ `cat 12.30-old` =~ $sn ]];then echo $sn; fi; done