函数名称 返回值类型 说明 示例
字符串函数 ascii(str) number 返回str首字母的ASCII码
select ascii('A') from dual; --65
select ascii('ab') from dual; --97 
chr(num) char 返回ASCII码为num的字符
select chr(65) from dual;--'A'
select chr(97) from dual;--'a' 
concat(p1,p2) char 将p2拼接在p1后边
select concat(10, 20) from dual; --1020
select concat(10, 'ab') from dual; --10ab
select concat('ab', '10') from dual; --ab10  
initcap(p)  char 将p的首字母大写,其他字母小写 
select initcap('ABCD') from dual; --Abcd
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
select instr('aabbabab', 'ab', 3) from dual; --'ab'从'aabbabab'中的第3位开始,第一次出现的位置 5
select instr('aabbabab', 'ab', 3, 2) from dual; --'ab'从'aabbabab'中的第3位开始,第二次出现的位置 7
 instrb(p1,p2[,i[,j]]) number 与函数instr(p1,p2[,i[,j]])的作用相同,但是按字节计算 
select instrb('我我要要我要我要', '我要') from dual; --'我要'在'我我要要我要我要'中第一次出现的位置   3
select instrb('我我要要我要我要', '我要', 4) from dual; --'我要'从'我我要要我要我要'中的第3个字节开始,第一次出现的位置 9
select instrb('我我要要我要我要', '我要', 3, 2) from dual; --'我要'从'我我要要我要我要'中的第3个字节开始,第二次出现的位置 9
 length(p) number 返回参数p的长度值 
select length('abc') from dual; --3
select length(123) from dual; --3 
lengthb(p)  number  返回参数p的字节数 
select lengthb('abc') from dual; --3
select lengthb('我') from dual; --2  
lower(p)  char 将参数p转换为小写 
select lower('ABCD') from dual; --'abcd'
select lower('Ab12') from dual; --'ab12' 
upper(p) char

将参数p转换为大写

select upper('abcd') from dual; --'ABCD
select upper('ab12') from dual; --'AB12'
 lpad(p1,i[,p2]) char 在p1的左侧填充p2,使其长度为i 
select lpad(123, 5, 0) from dual; --'00123'
select lpad('abc', 8, 12) from dual; --'12121abc'
select lpad('abc', 8, 'ef') from dual; --'efefeabc'
 ltrim(p1,p2) char 

去掉p1左边开头连续存在的字符p2

select lpad(123, 5, 0) from dual; --'00123'
select lpad('abc', 8, 12) from dual; --'12121abc'
select lpad('abc', 8, 'ef') from dual; --'efefeabc'
 rpad(p1,i[,p2]) char 在p1的右侧填充p2,使其长度为i 
select rpad(123, 5, 0) from dual; --'12300'
select rpad('abc', 8, 12) from dual; --'abc12121'
select rpad('abc', 8, 'ef') from dual; --'abcefefe'
 rtrim(p1,p2) char   去掉p1右边结尾连续存在的字符p2
select rtrim('aabbcc', 'b') from dual; --'aabbcc'
select rtrim('aabbcc', 'c') from dual; --'aabb'
select rtrim('cdefabab', 'ab') from dual; --'cdef' 
replace(p1,p2[,p3])  char 用p3替换掉p1中存在的p2 
select replace('abcabc', 'c') from dual; --'abab'
select replace('abcabc', 'c', 'd') from dual; --'abdabd' 
 reverse(p) char  返回字符串p的倒叙排列 
select reverse('123') from dual; --'321'
select reverse('abcd') from dual; --'dcba' 
 substr(p1,i[,j]) char 从p1中的i位置开始,截取长度为j的字符串 
select substr('abcdefg', 3) from dual; --'cdefg'
select substr('abcdefg', 2, 3) from dual; --'bcd'
select substr(123456, 2, 4) from dual; --'2345' 
substrb(p1,i[,j])  char 从p中的第i个字节开始,截取长度为j个字节的字符串 
select substrb('123456', 2, 3) from dual; --'234'
select substrb('你好,世界!', 3, 2) from dual; --'好'
select substrb('你好,世界!', 3, 4) from dual; --'好,'
 soundex(p) char 返回由4个字符组成的字符串,其中第一个字符为p的首字母,后3位为数字,可用来表示两个单词发音的相似度(忽略所有元音、字母 y、连写字母和字母 h)
--两个单词发音一致
select soundex('sheet') from dual; --S300
select soundex('shit') from dual; --S300 --忽略元音
select soundex('ha') from dual; --H000
select soundex('hi') from dual; --H000 
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开头的多有数据行
select * from emp where regexp_like(ename,'^[AB]'); 

 regexp_instr(source,pattern

  [,position

  [,occurrence

  [,return_option

  [,match_parameter

  ]]]])

number

与instr的功能相似 ,返回字符串中与正则表达式pattern匹配的字符的位置

参数说明:
  source:需要进行匹配的字符串
  pattern:正则表达式
  position:从source中开始匹配的位置
  return_option:
    0:返回第一个匹配字符出现的位置
    1:返回匹配字符下一个字符的位置
  math_parameter:
    i:大小写不敏感
    c:大小写敏感(默认值)
    n:.不匹配换行符
    m:多行模式
    x:扩展模式,忽略正则表达式中的空白字符 select regexp_instr('abcd,aabccd,aefdacd','[^,]+') from dual;--1
select regexp_instr('abcd,aabccd,aefdacd','[^,]+',6) from dual;--6
select regexp_instr('abcd,aabccd,aefdacd','[^,]+',1,2) from dual;--6
select regexp_instr('abcd,aabccd,aefdacd','[^,]+',6,2) from dual;--13
select regexp_instr('abcd,aabccd,aefdacd','[^,]+',1,2,0) from dual;--6
select regexp_instr('abcd,aabccd,aefdacd','[^,]+',1,2,1) from dual;--12

regexp_substr(source,pattern

  [,position

  [,occurrence

  [,match_parameter

  ]]]) 

char 与substr的功能相似,截取字符串中与正则表达式pattern匹配的字符
select regexp_substr('abcd,aabccd,aefdacd','[^,]+') from dual;--'abcd'
select regexp_substr('abcd,aabccd,aefdacd','[^,]+',6) from dual;--'aabccd'
select regexp_substr('abcd,aabccd,aefdacd','[^,]+',1,2) from dual;--'aabccd'
select regexp_substr('abcd,aabccd,aefdacd','[^,]+',6,2) from dual;--'aefdacd' 

retexp_replace(source,pattern

  [,replace_string

  [,position

  [,occurrence

  [,match_parameter

  ]]]]) 

char 与replace的功能相似 ,将符合正则表达式的字符替换为新的字符
select regexp_replace('abCdEFGhiJK', '[a-z]') from dual; --'CEFGJK'
select regexp_replace('abCdEFGhiJK', '[a-z]', '*') from dual; --'**C*EFG**JK'
select regexp_replace('abCdEFGhiJK', '[a-z]', '*', 3) from dual; --'abC*EFG**JK'
select regexp_replace('abCdEFGhiJK', '[a-z]', '*', 3, 2) from dual; --'abCdEFG*iJK' 
数字函数 abs(p) number 返回参数的绝对值 
select abs(123) from dual; --123
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
select ceil(1.52) from dual; --2 
floop(p) number 返回小于等于p的最大整数
select floor(1.56) from dual; --1
select floor(1.2) 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
select mod(12, 5) from dual; --2 
power(i,j)  number  返回i的j次方 
select power(10, 2) from dual; --100
select power(5, 2) from dual; --25 
round(i[,j])  number  返回对i进行四舍五入后的值,j是保留小数位(可以是0、整数、负数)
select round(123.456) from dual; --123
select round(123.456, 2) from dual; --123.46
select round(123.456, -2) from dual; --100
select round(152.456, -2) from dual; --200
sign(p)  number  p=0,返回0;p>0,返回1;p<0,返回-1
select sign(0) from dual; --0
select sign(10) from dual; --1
select sign(-2) from dual; -- -1 
sqrt(p)  number   返回参数的平方根
select sqrt(100) from dual; --10
select sqrt(25) from dual -- 5 
trunc(i,j)  number  返回i保留j位小数的值,不进行四舍五入(j可以是0、整数、负数) 
select trunc(123.456) from dual; --123
select trunc(123.456, 2) from dual; --123.45
select trunc(123.456, -2) from dual; --100 
select trunc(152.456, -2) from dual; --100
转换函数 convert(p,ds[,ss])  char  将参数从ss字符集转换为ds字符集
select convert('你好', 'utf8', 'zhs16gbk') from dual; --'浣犲ソ'
select convert('浣犲ソ', 'zhs16gbk', 'utf8') from dual; --'你好' 
 hextoraw(p) char  将16进制的参数转换为raw类型   select hextoraw('abcdef') from dual; --'ABCDEF'  
rawtohex(p)  char  将raw类型的参数转换为16进制 
select rawtohex('AA') from dual; --'4141'
select rawtohex('aa') from dual; --'6161' 
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'
select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual; --'2017-09-06 21:48:11' 
to_date(s,fmt)  date  将字符转换为指定格式的date类型
select to_date('2017-09-06', 'YYYY-MM-DD') from dual; --'2017.9.6
select to_date('09-06-2017', 'MM-DD-YYYY') from dual; --'2017.9.6'
select to_date('2017-09-06 21:48:11', 'YYYY-MM-DD HH24:MI:SS') from dual; --'2017.9.6 21:48:11' 
to_multi_byte(p)  char  将单字节字符转换为双字节字符
select lengthb('a') from dual; --1
select lengthb(to_multi_byte('a')) from dual; --2
 to_number(p) number  将参数转换为数字  select to_number('123') from dual; --123  
 to_single_byte() char  将双字节字符转换为单字节字符
select lengthb('a') from dual; --1
select lengthb(to_multi_byte('a')) from dual; --2
select lengthb(to_single_byte(to_multi_byte('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
select last_day(to_date('2017-09-06', 'YYYY-MM-DD')) from dual; --2017.9.30 
 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
select months_between(to_date('2017-09-06', 'YYYY-MM-DD'), to_date('2017-02-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'
select next_day(to_date('2017-09-06'),'星期三') 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'
select round(to_date('2017-09-06', 'YYYY-MM-DD'), 'YYYY') from dual; --'2018.1.1'
select round(to_date('2017-09-06', 'YYYY-MM-DD'), 'MM') from dual; --'2017.9.1'
select round(to_date('2017-09-26', 'YYYY-MM-DD'), 'MM') from dual; --'2018.10.1' 
trunc(d,fmt) date  返回日期d按照指定格式截取后日期的第一天
select trunc(to_date('2017-05-06', 'YYYY-MM-DD'), 'YYYY') from dual; --'2017.1.1'
select trunc(to_date('2017-09-06', 'YYYY-MM-DD'), 'YYYY') from dual; --'2017.1.1'
select trunc(to_date('2017-09-06', 'YYYY-MM-DD'), 'MM') from dual; --'2017.9.1'
select trunc(to_date('2017-09-26', 'YYYY-MM-DD'), 'MM') from dual; --'2018.9.1' 
sysdate date 获取当前系统时间
select sysdate from dual; --'2017-09-06 22:13:14'  
extract char 截取日期中的指定字段
-- 获取日期中的年份
select extract(year from sysdate) from dual; --'2017'
select extract(year from date'2011-01-03') from dual; --'2011'
-- 获取日期中的月份
select extract(month from date'2011-01-03') from dual; --'1'
-- 获取日期中的天
select extract(day from date'2011-01-03') from dual; --'3'
聚合函数   avg(col) number  返回col列的平均值
select avg(sal) from emp;
select avg(sal) from emp group by deptno;
 count(col|*) number  返回列col的行数,*表示所有行
select count(ename) from emp;
select count(*) from emp group by deptno;
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的合并行,用逗号分隔 
--获取每个部门中的员工姓名
select wm_concat(ename) from emp group by deptno;
   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;
结果:
... ... dept decode
... ... 10 1班
... ... 20 2班
... ... 30 3班
... ... 40 4班
... ... 没有对应班级
         

Oracle 系统函数的更多相关文章

  1. oracle系统函数(日期函数)

    oracle系统函数(日期函数) 调用日期函数时,首先要明确两个概念,时间戳和日期是不同的,日期中包括年月日但不包括小时分钟秒,时间戳包括年月日小时分钟秒.在oracle中,一般情况下,函数中包含da ...

  2. Oracle的学习三:java连接Oracle、事务、内置函数、日期函数、转换函数、系统函数

    1.java程序操作Oracle java连接Oracle JDBC_ODBC桥连接 1.加载驱动: Class.forName("sun.jdbc.odbc.JdbcodbcDriver& ...

  3. .Net程序员学用Oracle系列(9):系统函数(上)

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.字符函数 1.1.字符函数简介 1.2.语法说明及案例 2.数字函数 2.1.数字函数简介 2.2.语法说明及案例 3.日期 ...

  4. .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 ...

  5. oracle常用系统函数

    一.字符类函数 字符类函数是专门用于字符处理的函数,处理的对象可以是字符或者字符串常量,也可以是字符类型的列. 1.ASCII(c)和CHR(i) ASCII(c)函数用于返回一个字符的ASCII码, ...

  6. 分享:Oracle 系统变量函数用法说明

    在Oracle数据库中,Oracle系统变量函数是经常会使用到的函数,分享下Oracle系统变量函数的用法. Oracle函数多种多样,系统变量函数就是其中之一,介绍三种最常见的系统变量函数. Ora ...

  7. Oracle SQL常用内置系统函数总结

    Oracle数据库  内置系统函数主要分为以下类别:数学函数.字符串函数.日期函数.转换函数.聚合函数.分析聚合函数 一.数学函数 ------------返回数字       abs(n):返回数字 ...

  8. Oracle中常用的系统函数

    本文主要来梳理下Oracle中的常用的系统函数,掌握这些函数的使用,对于我们编写SQL语句或PL/SQL代码时很有帮助,所以这也是必须掌握的知识点. 本文主要包括以下函数介绍:1.字符串函数2. 数值 ...

  9. 【Oracle】Oracle中常用的系统函数

    Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能.函数可以接受零个或者多个输入参数,并返回一个输出结果.在Oracle还可以自定义函数,关于更多信息可以查 ...

随机推荐

  1. c学习 - 第八章:函数

    8.7 数组作函数的参数 1.数组元素作函数的参数--值传递,单向传递 2.数组名做函数的参数--地址传送 (1)实参:数组名做实参,传递的是数组首元素的地址 (2)形参:使用同类型的数组名或指针变量 ...

  2. Siebel调用WebService

    Siebel可以调用外部系统的接口,通过WebService的接入方式实现,所在的项目都是通过ESB,其他系统的接口都要经过ESB,由ESB提供WSDL文档,通过Siebel调用. 一.修改Tools ...

  3. Android 小知识

    1.判断sd卡是否存在 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environmen ...

  4. LVS nat模型+dr模型

    nat模型 在 rs1 和 rs2  安装httpd  并配置测试页,启动 [root@rs1 ~]# yum install httpd -y[root@rs1 ~]# echo "thi ...

  5. 【Services】【Web】【Nginx】静态下载页面的安装与配置

    1. 拓扑 F5有自动探活机制,如果一台机器宕机,请求会转发到另外一台,省去了IPVS漂移的麻烦 F5使用轮询算法,向两台服务器转发请求,实现了负载均衡 2. 版本: 2.1 服务器版本:RHEL7. ...

  6. 一个超好用的 Python 标准库,彻底玩透路径操作

    pathlib 学习 Python 时,尤其是在进行文件操作和数据处理时,经常会处理路径问题.最常用和常见的是 os.path 模块,它将路径当做字符串进行处理,如果使用不当可能导致难以察觉的错误,而 ...

  7. bootstrapTable频繁向后台接口发请求

    当bootstrapTable出现这样的问题,是因为查询到的数据行数为空,而后台返回的总行数又不为0时,就会疯狂地往接口发请求

  8. Samba 源码解析之内存管理

    由于工作需要想研究下Samba的源码,下载后发现目录结构还是很清晰的.一般大家可能会对source3和source4文件夹比较疑惑.这两个文件夹针对的是Samba主版本号,所以你可以暂时先看一个.这里 ...

  9. [V&N2020 公开赛]babybabypwn

    写在开头,感谢"影二つ"师傅的指点. 题目的做法思路网上一搜一大把,这篇博客主要记录一下这道题用pwntools写srop的时候,为什么需要省略前面8个字节. 在看题目之前,先来学 ...

  10. java 多线程:线程通信-等待通知机制wait和notify方法;(同步代码块synchronized和while循环相互嵌套的差异);管道通信:PipedInputStream;PipedOutputStream;PipedWriter; PipedReader

    1.等待通知机制: 等待通知机制的原理和厨师与服务员的关系很相似: 1,厨师做完一道菜的时间不确定,所以厨师将菜品放到"菜品传递台"上的时间不确定 2,服务员什么时候可以取到菜,必 ...