函数名称 返回值类型 说明 示例
字符串函数 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. Linux学习 - 数值运算

    1 declare 声明变量类型 declare [+/-] [选项] 变量名 - 给变量设定类型属性 + 取消变量的类型属性 -i 将变量声明为整数型 -x 将变量声明为环境变量(同export) ...

  2. OC-基础数据类型

    七 字符串与基本数据类型转换 获取字符串的每个字符/字符串和其他数据类型转换 八 NSMutableString 基本概念/常用方法 九 NSArray NSArray基本概念/创建方式/注意事项/常 ...

  3. Bitmaps与优化

    1.有效的处理较大的位图 图像有各种不同的形状和大小.在许多情况下,它们往往比一个典型应用程序的用户界面(UI)所需要的资源更大. 读取一个位图的尺寸和类型: 为了从多种资源来创建一个位图,Bitma ...

  4. python web框架学习笔记

    一.web框架本质 1.基于socket,自己处理请求 #!/usr/bin/env python3 #coding:utf8 import socket def handle_request(cli ...

  5. Java设计模式—Proxy动态代理模式

    代理:设计模式 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问.代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理. 图 1. 代 ...

  6. list.jsp页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><%@tag ...

  7. scrapy爬取招聘网站,items转换成dict遇到的问题

    pipelines代码 1 import json 2 3 class TencentJsonPipeline(object): 4 def __init__(self): 5 self.file = ...

  8. C++STL标准库学习笔记(三)multiset

    C++STL标准库学习笔记(三)multiset STL中的平衡二叉树数据结构 前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标 ...

  9. Jenkins动态选择分支/tag

    目录 一.简介 二.配置 三.配置tag 四.其它方法 五.List Git Branches插件 一.简介 一般选择分支构建,Git Parameter插件即可.这里是应用pipline的同时,可以 ...

  10. vue双向绑定和深浅拷贝

    现象描述: vue 在使用的时候,当table绑定了某个data的时候.假如某个el-table-column下面的有个方法传参(data.row),然后在方法中用一个obj=data.row.(这里 ...