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还可以自定义函数,关于更多信息可以查 ...
随机推荐
- c学习 - 第八章:函数
8.7 数组作函数的参数 1.数组元素作函数的参数--值传递,单向传递 2.数组名做函数的参数--地址传送 (1)实参:数组名做实参,传递的是数组首元素的地址 (2)形参:使用同类型的数组名或指针变量 ...
- Siebel调用WebService
Siebel可以调用外部系统的接口,通过WebService的接入方式实现,所在的项目都是通过ESB,其他系统的接口都要经过ESB,由ESB提供WSDL文档,通过Siebel调用. 一.修改Tools ...
- Android 小知识
1.判断sd卡是否存在 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environmen ...
- LVS nat模型+dr模型
nat模型 在 rs1 和 rs2 安装httpd 并配置测试页,启动 [root@rs1 ~]# yum install httpd -y[root@rs1 ~]# echo "thi ...
- 【Services】【Web】【Nginx】静态下载页面的安装与配置
1. 拓扑 F5有自动探活机制,如果一台机器宕机,请求会转发到另外一台,省去了IPVS漂移的麻烦 F5使用轮询算法,向两台服务器转发请求,实现了负载均衡 2. 版本: 2.1 服务器版本:RHEL7. ...
- 一个超好用的 Python 标准库,彻底玩透路径操作
pathlib 学习 Python 时,尤其是在进行文件操作和数据处理时,经常会处理路径问题.最常用和常见的是 os.path 模块,它将路径当做字符串进行处理,如果使用不当可能导致难以察觉的错误,而 ...
- bootstrapTable频繁向后台接口发请求
当bootstrapTable出现这样的问题,是因为查询到的数据行数为空,而后台返回的总行数又不为0时,就会疯狂地往接口发请求
- Samba 源码解析之内存管理
由于工作需要想研究下Samba的源码,下载后发现目录结构还是很清晰的.一般大家可能会对source3和source4文件夹比较疑惑.这两个文件夹针对的是Samba主版本号,所以你可以暂时先看一个.这里 ...
- [V&N2020 公开赛]babybabypwn
写在开头,感谢"影二つ"师傅的指点. 题目的做法思路网上一搜一大把,这篇博客主要记录一下这道题用pwntools写srop的时候,为什么需要省略前面8个字节. 在看题目之前,先来学 ...
- java 多线程:线程通信-等待通知机制wait和notify方法;(同步代码块synchronized和while循环相互嵌套的差异);管道通信:PipedInputStream;PipedOutputStream;PipedWriter; PipedReader
1.等待通知机制: 等待通知机制的原理和厨师与服务员的关系很相似: 1,厨师做完一道菜的时间不确定,所以厨师将菜品放到"菜品传递台"上的时间不确定 2,服务员什么时候可以取到菜,必 ...