本文详细讲解了Oracle中常用的函数,通过示例代码非常详细。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。
: 目录
1.字符串函数2,数字函数3,日期函数4,转换函数5,其他单行函数6。聚集函数oracle数据库中使用的函数主要有两种类型:
1.单行函数:操作一行数据,返回一个结果。
常用的单行函数有:
字符串函数:对字符串进行操作。
Number函数:计算一个数字并返回一个数字。
日期函数:处理日期和时间。
转换功能:您可以将一种数据类型转换为另一种。
2.聚合函数(多行函数、分组函数、分组函数):操作多行数据,返回一个结果。类似SUM
一、字符串函数
character函数接受字符参数,这些参数可以是表中的列或字符串表达式。
以下各项的常见字符功能:
功能
解释
ASCII(X)
返回字符x的ASCII码。
CONCAT(X,Y)
连接字符串x和y
INSTR(X,STR[,START][,N)
要从X查找字符串,可以指定从n开始或从X开始
长度(X)
返回x的长度。
较低(X)
x转换成小写
上部(X)
x转换为大写
LTRIM(X[,TRIM_STR])
Trim_str字符串在x左侧被截断,缺省情况下空格被截断。
RTRIM(X[,TRIM_STR])
Trim_str字符串在x右侧被截断,缺省情况下空格被截断。
TRIM([TRIM_STR FROM]X)
Trim_str字符串在x两边被截断,缺省情况下空格被截断。
替换(X,旧,新)
在x中寻找旧的,用新的代替。
SUBSTR(X,开始[,长度])
返回x的字符串,从起始字符和截取长度字符开始,具有默认长度和默认结尾。
上述功能的示例:
例子
示例结果
从dual中选择ASCII( a );
97
从dual中选择CONCAT(Hello , world );
Helloworld
从dual中选择INSTR(Hello world , or );
八
从dual中选择长度( Hello );
五
从dual中选择LOWER( Hello );
你好
从dual中选择UPPER( hello );
你好
SELECT LTRIM(=Hello=,=)FROM dual;
你好=
SELECT RTRIM(=Hello=,=)FROM dual;
=你好
从dual中选择TRIM(= FROM =Hello=);
你好
从dual中选择REPLACE(ABCDE , CD , AAA );
阿巴阿埃
从dual中选择SUBSTR(ABCDE ,2,3);
BCD
二、数字函数
数字函数接受数字参数,该参数可以来自表中的列或数字表达式。
功能
解释
例子
ABS(X)
x的绝对值
ABS(-3)=3
ACOS(X)
x的反余弦值
ACOS(1)=0
COS(X)
余弦
COS(1)=0.54030230586814
上限(X)
大于或等于x的最小值
上限(5.4)=6
楼层(X)
或者小于或等于x的最大值
地板(5.8)=5
对数(X,Y)
x是以y为底的对数。
LOG(2,4)=2
MOD(X,Y)
x除以y的余数
MOD(8,3)=2
幂(X,Y)
x的y次方
幂(2,3)=8
ROUND(X[,Y])
x在y位置四舍五入。
ROUND(3.456,2)=3.46
SQRT(X)
x的平方根
SQRT(4)=2
TRUNC(X[,Y])
在x的y位截断
TRUNC(3.456,2)=3.45
描述:
1.ROUND(X[,Y]),四舍五入。
如果默认y,则默认y=0;比如:ROUND(3.56)=4。
y为正整数,即四舍五入到小数点后y位。ROUND(5.654,2)=5.65 .
y是负整数,通过|y|舍入到小数点左侧。ROUND(351.654,-2)=400 .
2.TRUNC(x[,y]),直接截断,不舍入。
如果默认y,则默认y=0;例如:TRUNC(3.56)=3。
y为正整数,即四舍五入到小数点后y位。TRUNC(5.654,2)=5.65 .
y是负整数,通过|y|舍入到小数点左侧。TRUNC(351.654,-2)=300 .
三、日期函数
date函数对日期进行操作。常用的日期函数有:
1.ADD_MONTHS(d,n),将指定的月数加到某个日期d上,计算后返回新的日期。
d表示日期,n表示要添加的月数。
示例:
SELECT SYSDATE,add_months(SYSDATE,5)FROM dual;
2.LAST_DAY(d),返回该月中指定日期的最后一天。
示例:
SELECT SYSDATE,last _ day(SYSDATE)FROM dual;
3.ROUND(d[,fmt]),返回fmt格式的舍入日期值,其中D是日期,fmt是格式。
模型。默认的fmt是DDD,即一个月中的某一天。
如果fmt为“年”,则四舍五入到某年1月1日,即舍弃上半年,下半年作为下一年。
如果fmt为“月”,则四舍五入到某月1日,即上个月四舍五入,下半月作为下个月。
默认为“DDD”,即当月的某一天,最接近的一天,舍弃前半天,后半天为次日。
如果fmt为“日”,则四舍五入到最近一周的周日,即前半周四舍五入,后半周为下一周的周日。
示例:
SELECT SYSDATE,ROUND(系统日期),ROUND(系统日期,日),
ROUND(SYSDATE, month ),ROUND(SYSDATE, year )FROM dual;
与ROUND对应的函数是TRUNC(d[,fmt])对日期的运算。Trunc和ROUND很像,只是日期不四舍五入,直接截取对应格式的第一天。
4.EXTRACT(fmtFROMd),它提取日期的特定部分。
t是:年、月、日、小时、分钟、秒。年、月、日可以匹配日期类型或时间戳类型;但是小时、分钟和秒钟必须与时间戳类型相匹配。
小时匹配的结果中没有加入时区,所以在中国跑步的结果是小8小时。
示例:
选择系统日期日期,
提取(从系统日期开始的年份)“年份”,
提取(从系统日期开始的月份)“月份”,
提取(从系统日期开始的日期)日期,
提取(系统时间戳中的小时)小时,
提取(系统时间戳中的分钟)分钟,
提取(从SYSTIMESTAMP开始的秒)秒
来自dual
四、转换函数
转换函数将值从一种数据类型转换为另一种数据类型。的常见转换功能有:
1、TO_CHAR(d|n[,fmt])
将日期和数字转换成格式化字符串。t是一个格式化字符串。
代码:TO_CHAR对日期的处理
Select _ char (sysdate, yyyy year MM month DD day HH24:MI:SS ) date FROM dual;
代码解析:
在带格式的字符串中,使用双引号来引用无格式的字符。
对于数字的格式化,格式化字符是:
参数
例子
解释
九
紧急服务电话
在指定位置显示一个数字。
9.9
返回指定位置的小数点。
,
99,99
在指定位置返回一个逗号。
$
$999
返回数字开头的美元符号。
咿咿
9.99EEEE
科学计数表示法
L
1999年
该数字前面有一个本地货币符号。
一对
999PR
如果数字是负数,则用尖括号表示。
Code: TO_CHAR对数字的处理
SELECT TO_CHAR(-123123.45, l 9.9 eee EPR ) date FROM dual;
2、迄今为止(X,[,fmt])
将字符串转换为fmt格式的日期类型。
3、收件人号码(X,[,fmt])
将字符串转换成fmt格式的数字。
代码演示:TO_NUM函数
SELECT TO_NUMBER(-$12,345.67 , $99,999.99 ) num FROM dual;
五、其它单行函数
1、NVL(X,值)
如果x为空,返回值;否则,返回x
例:工资低于2000元的员工,如果不发奖金,每个员工发100元奖金。
代码演示:NVL函数
从EMP WHERE SAL2000中选择ENAME,JOB,SAL,NVL(COMM,100 );
-
ENAMEJOBSALNVL(通信,100)
史密斯店员800100
艾伦销售员1600300
WARDSALESMAN1250500
MARTINSALESMAN12501400
特纳销售员150050
ADAMSCLERK1100100
詹姆斯克拉克950100
-
7行已选择
2、NVL2(x,值1,值2)
如果x不为空,则返回值1;否则,返回值2
例:EMP表中工资低于2000元的员工,如果没有奖金,奖金为200元;有奖金的话,在原有奖金的基础上再加100元。
代码演示:NVL2函数
SELECT ENAME,JOB,SAL,NVL2(COMM,comm 100,200) COMM FROM EMP WHERE SAL 2000;
-
ENAMEJOBSALcomm
史密斯店员800200
艾伦销售员1600400
WARDSALESMAN1250600
MARTINSALESMAN12501500
特纳销售员1500150
ADAMSCLERK1100200
詹姆斯克拉克950200
米勒克勒克1300200
-
8行选择
六、聚合函数
聚合函数同时对一组数据进行操作,并返回一行结果,例如计算一组数据的和与平均值。
名字
功能
语法
AVG
平均值
AVG(表情)
总和
求和
总和(表达式)
最小、最大
最小值和最大值
最小(表达式),最大(表达式)
数数
统计数字
计数(表达式)
例:求本月所有员工基本工资之和。
代码演示:sum函数
从emp中选择SUM(sal );
-
总和(萨尔)
29025
举例:求不同部门的平均工资。
代码演示:AVG函数下的分组查询
根据DEPTNO从EMP组中选择AVG DEPTNO(SAL );
-
DEPTNOAVG(萨尔)
-
301566.66666
202175
102916.66666
关于Oracle中常见函数的详细整理,本文到此结束。希望对大家的学习有帮助,也希望大家多多支持。