Oracle函数【详细 包括举例】

请添加图片描述

概述

Oracle SQL 提供了用于执行特定操作的专用函数。这些函数大大增强了 SQL 语言的功能。函数可以接受零个或者多个输入参数,并返回一个输出结果。 Oracle 数据库中主要使用两种类型的函数:

1.  单行函数:对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果,

比如:MOD(x,y)返回 x 除以 y 的余数(x 和 y 可以是两个整数,也可以是表中的整

数列)。常用的单行函数有:

Ø  字符函数:对字符串操作。

Ø  数字函数:对数字进行计算,返回一个数字。

Ø  转换函数:可以将一种数据类型转换为另外一种数据类型。

Ø  日期函数:对日期和时间进行处理。

2.  聚合函数:聚合函数同时可以对多行数据进行操作,并返回一个结果。比如 SUM(x)

返回结果集中 x 列的总合。

一、字符函数

字符函数接受字符参数,这些参数可以是表中的列,也可以是一个字符串表达式。

常用的字符函数:

函数

说明

ASCII(X)

返回字符X的ASCII码

CONCAT(X,Y)

连接字符串X和Y

INSTR(X,STR[,START][,N)

从X中查找str,可以指定从start开始,也可以指定从n开始

LENGTH(X)

返回X的长度

LOWER(X)

X转换成小写

UPPER(X)

X转换成大写

LTRIM(X[,TRIM_STR])

把X的左边截去trim_str字符串,缺省截去空格

RTRIM(X[,TRIM_STR])

把X的右边截去trim_str字符串,缺省截去空格

TRIM([TRIM_STR  FROM]X)

把X的两边截去trim_str字符串,缺省截去空格

REPLACE(X,old,new)

在X中查找old,并替换成new

SUBSTR(X,start[,length])

返回X的字串,从start处开始,截取length个字符,缺省length,默认到结尾

上面各函数的例子:

示例

示例结果

SELECT ASCII('a') FROM dual;

97

SELECT CONCAT('Hello','world') FROM dual;

Helloworld

SELECT INSTR('Hello world','or') FROM dual;

8

SELECT LENGTH('Hello') FROM dual;

5

SELECT LOWER('Hello') FROM dual;

hello

SELECT UPPER('hello') FROM dual;

HELLO

SELECT LTRIM('=Hello=','=') FROM dual;

Hello=

SELECT RTRIM('=Hello=','=') FROM dual;

=Hello

SELECT TRIM('='FROM'=Hello=') FROM dual;

Hello

SELECT REPLACE('ABCDE','CD','AAA')FROM dual;

ABAAAE

SELECT SUBSTR('ABCDE',2,3) FROM dual;

BCD

二、数字函数

数字函数接受数字参数,参数可以来自表中的一列,也可以是一个数字表达式。

函数

说明

示例

ABS(X)

X的绝对值

ABS(-3)=3

ACOS(X)

X的反余弦

ACOS(1)=0

COS(X)

余弦

COS(1)=0.54030230586814

CEIL(X)

大于或等于X的最小值

CEIL(5.4)=6

FLOOR(X)

小于或等于X的最大值

FLOOR(5.8)=5

LOG(X,Y)

X为底Y的对数

LOG(2,4)=2

MOD(X,Y)

X除以Y的余数

MOD(8,3)=2

POWER(X,Y)

X的Y次幂

POWER(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。

三、日期函数

日期函数对日期进行运算。常用的日期函数有:

1、ADD_MONTHS(d,n),在某一个日期 d 上,加上指定的月数 n,返回计算后的新日期。

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 为“YEAR”则舍入到某年的 1 月 1 日,即前半年舍去,后半年作为下一年。

Ø  ② 如果 fmt 为“MONTH”则舍入到某月的 1 日,即前月舍去,后半月作为下一月。

Ø  ③ 默认为“DDD”,即月中的某一天,最靠近的天,前半天舍去,后半天作为第二天。

Ø  ④ 如果 fmt 为“DAY”则舍入到最近的周的周日,即上半周舍去,下半周作为下一周周日。

例:SELECT SYSDATE,ROUND(SYSDATE),ROUND(SYSDATE,'day'),

ROUND(SYSDATE,'month'),ROUND(SYSDATE,'year') FROM dual;

 

与 ROUND 对应的函数时 TRUNC(d[,fmt])对日期的操作, TRUNC 与 ROUND 非常相似,只是不对日期进行舍入,直接截取到对应格式的第一天。

4、EXTRACT(fmt FROM d),提取日期中的特定部分。

fmt 为:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND。其中 YEAR、MONTH、DAY可以为 DATE 类型匹配,也可以与 TIMESTAMP 类型匹配;但是 HOUR、MINUTE、SECOND 必须与 TIMESTAMP 类型匹配。

HOUR 匹配的结果中没有加上时区,因此在中国运行的结果小 8 小时。

例:SELECT SYSDATE "date",

       EXTRACT(YEAR FROM SYSDATE)"year",

       EXTRACT(MONTH FROM SYSDATE)"month",

       EXTRACT(DAY FROM SYSDATE)"day",

       EXTRACT(HOUR FROM SYSTIMESTAMP)"hour",

       EXTRACT(MINUTE FROM SYSTIMESTAMP)"minute",

       EXTRACT(SECOND FROM SYSTIMESTAMP)"second"

FROM dual;


四、转换函数

转换函数将值从一种数据类型转换为另外一种数据类型。常见的转换函数有:

1、TO_CHAR(d|n[,fmt])

把日期和数字转换为制定格式的字符串。Fmt是格式化字符串

代码演示:TO_CHAR对日期的处理

SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS')"date" FROM dual;

 

代码解析:

在格式化字符串中,使用双引号对非格式化字符进行引用

针对数字的格式化,格式化字符有:

参数

示例

说明

9

999

指定位置处显示数字

.

9.9

指定位置返回小数点

,

99,99

指定位置返回一个逗号

$

$999

数字开头返回一个美元符号

EEEE

9.99EEEE

科学计数法表示

L

L999

数字前加一个本地货币符号

PR

999PR

如果数字式负数则用尖括号进行表示

代码演示:TO_CHAR对数字的处理

SELECT TO_CHAR(-123123.45,'L9.9EEEEPR')"date" FROM dual;

 

2、TO_DATE(X,[,fmt])

把一个字符串以fmt格式转换成一个日期类型

3、TO_NUMBER(X,[,fmt])

把一个字符串以fmt格式转换为一个数字

代码演示:TO_NUM函数

SELECT TO_NUMBER('-$12,345.67','$99,999.99')"num" FROM dual;

 

五、其它单行函数

1、NVL(X,VALUE)

如果X为空,返回value,否则返回X

例:对工资是2000元以下的员工,如果没发奖金,每人奖金100元

代码演示:NVL函数

SQL> SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL<2000;

-------------------------------------------------------------------

ENAME    JOB    SAL    NVL(COMM,100) 

SMITH    CLERK    800    100 

ALLEN    SALESMAN    1600    300 

WARD    SALESMAN    1250    500 

MARTIN    SALESMAN    1250    1400 

TURNER    SALESMAN    1500    50 

ADAMS    CLERK    1100    100 

JAMES    CLERK    950    100 

-------------------------------------------------------------------

7 rows selected

2、NVL2(x,value1,value2)

如果x非空,返回value1,否则返回value2

例:对EMP表中工资为2000元以下的员工,如果没有奖金,则奖金为200元,如果有奖金,则在原来的奖金基础上加100元

代码演示:NVL2函数

SQL> SELECT ENAME,JOB,SAL,NVL2(COMM,comm+100,200) "comm"

2   FROM EMP WHERE SAL<2000;

-------------------------------------------------------------------

ENAME    JOB    SAL    comm 

SMITH    CLERK    800    200 

ALLEN    SALESMAN    1600    400 

WARD    SALESMAN    1250    600 

MARTIN    SALESMAN    1250    1500 

TURNER    SALESMAN    1500    150 

ADAMS    CLERK    1100    200 

JAMES    CLERK    950    200 

MILLER    CLERK    1300    200

-------------------------------------------------------------------------------------------------------

8 rows selected

六、聚合函数

聚合函数同时对一组数据进行操作,返回一行结果,比如计算一组数据的总和,平均值

等。

名称

作用

语法

AVG

平均值

AVG(表达式)

SUM

求和

SUM(表达式)

MIN、MAX

最小值、最大值

MIN(表达式)、MAX(表达式)

COUNT

数据统计

COUNT(表达式)

 

例:求本月所有员工的基本工资总和

代码演示:sum函数

SQL> SELECT SUM(sal) FROM emp;

-------------------------------------------------------------------

SUM(SAL)

29025

例:求不同部门的平均工资

代码演示:AVG函数下的分组查询

SQL> SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO;  

-------------------------------------------------------------------

DEPTNO    AVG(SAL)

---------    ----------

30    1566.66666

20     2175

10    2916.66666




请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/255001.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

oracle常用函数

1.sign sign函数是根据给的数为正数&#xff0c;就返回1,0返回0&#xff0c;负数返回-1。需要注意sign&#xff08;这个括号里面只能是个字段&#xff09;&#xff0c;在括号中写个子查询直接就报错了&#xff01; 2.decode 用法&#xff1a; decode(条件,值1,返回值1,值2,返回…

重庆“90后”双胞胎“动妹” 守护春运回家路

近日&#xff0c;在重庆客运段动车一队值乘的G8508次列车上&#xff0c;有一对“90后”双胞胎姐妹乘务员&#xff0c;名字叫李清和李洁&#xff0c;她们也是一同参加工作。图为双胞胎姐妹整理着装准备工作。 据悉&#xff0c;双胞胎姐妹已经在列车上共同经历了8个春运。姐妹俩说…

联想Win10安装Ubuntu双系统教程

前言&#xff1a;最近为了更好的做一名程序员&#xff08;猿&#xff09;&#xff0c;所以准备装一个双系统&#xff0c;也就是Ubuntu系统&#xff0c;网上坑太多&#xff0c;所以决定自己写一点操作步骤 首先看一下我的计算机配置&#xff0c;联想小新700 Tip&#xff1a;这里…

轮胎规格怎么看

轮胎规格怎么看&#xff0c;很多车主都会问这样的问题&#xff0c;只看到轮胎上的字&#xff0c;却不清楚这些字代表的是什么意思&#xff0c;鉴于此&#xff0c;小编今天就来普及一下轮胎规格知识。 轮胎规格怎么看 我们今天大家讲解一下轮胎胎壁上的标示都代表了那些含义&…

如何安装linux和windows双系统

像我们运维学习者&#xff0c;平常会用到linux&#xff0c;但是又必不可免的会用到windows&#xff0c;所以在一台电脑上安装linux和windows双系统就成了刚需&#xff0c;那么如何来安装windows和linux双系统呢 实验环境 电脑&#xff1a;实验室台式机 优盘&#xff1a;金士…

算法技巧——双指针算法

前置知识 C 和 C 的数组、指针。 什么是双指针 严格的来说&#xff0c;双指针只能说是是算法中的一种技巧。 双指针指的是在遍历对象的过程中&#xff0c;不是普通的使用单个指针进行访问&#xff0c;而是使用两个相同方向&#xff08;快慢指针&#xff09;或者相反方向&am…

JVM面试题

一、JVM包含哪几部分&#xff1f; JVM主要由四大部分组成&#xff1a; 类加载器&#xff0c;运行时数据区&#xff0c;执行引擎 &#xff0c;本地库接口 类加载器&#xff1a;负责加载字节码文件即 class文件&#xff0c;class文件在文件开头有特定的文件标示&#xff0c;并且…

chatgpt赋能python:Python中符号详解

Python中符号详解 Python是一种高级编程语言&#xff0c;使用简洁、优雅的语法非常受欢迎。在Python中&#xff0c;有很多符号&#xff0c;这些符号对于写出优雅、高效的代码至关重要。在本文中&#xff0c;我们将详细介绍Python中的常见符号。 1. 等号&#xff08;&#xff…

Excel如何计算年龄

如下图是某公司信息表&#xff0c;现在想要快速统计处各员工年龄。 在D2单元格输入公式DATEDIF(B2,TODAY(),"y") 然后将D2单元格公式下拉到底即可完成 公式中TODAY函数的作用是返回当前系统日期 DATEDIF函数是excel中常用的日期计算函数&#xff0c;它的作用是计算两…

在线年龄计算器

在线年龄计算器 在线年龄计算器 该工具可以通过给定的出生日期&#xff0c;计算出到现在为止的周岁年龄等&#xff0c;数据实时计算&#xff0c;修改日期后即可直接展示计算结果。 https://tooltt.com/birth/

用计算机知道对方的年龄,岁数计算器怎么查对象生日日期

步骤如下&#xff1a; 1、进入年龄计算器&#xff0c;然后选择“公历计算”或“农历计算”&#xff0c;选择对方的出生日期后&#xff0c;点击开始计算即可。 2、最后我们就可以看到对方的生日、生肖、星座等等相关信息了&#xff0c;还是比较全面的。 年龄计算器&#xff0c;在…

年龄计算器,如何算出20年后的你?(以及秃头计算器)

年龄计算器&#xff0c;如何算出20年后的你&#xff1f; 发布时间&#xff1a;2011-12-16 来源&#xff1a;cfan 点击量&#xff1a;71 我要评论 近来&#xff0c;有一个名为年龄计算器的网站在网友中流传&#xff0c;它能预测一个人20年后的相貌。打开http://in2…

如何用计算机函数算年龄,农历虚龄计算器,岁数计算器怎么查对象生日日

说到农历虚龄计算器&#xff0c;大家都知道&#xff0c;有人问如何用心理游戏计算出别人的真正生日时间&#xff1f;另外&#xff0c;还有人想问年龄计算器恋爱对象的生日日期是阳历还是农历&#xff0c;这是怎么回事&#xff1f;其实生日快乐在计算机上弹奏是哪几个数字&#…

用计算机算出你的年龄,身体年龄计算器:一分钟算出你的健康年龄(全文)

很多人都自认为很了解自己的 身体 情况&#xff0c;但也许事实上并不是这样的哦。你知道自己的身体 年龄 比自己实际年龄年轻还是老了吗&#xff1f;身体也是需要 保养 的哦&#xff0c;快来测出自己的身体年龄&#xff0c;然后进行保养或者“维修”吧&#xff01; 先写下你的实…

Excel如何根据出生日期计算年龄

如下图&#xff0c;B列单元格中含有多个出生日期&#xff0c;现在我们想要快速计算他们的年龄。 在C2单元格输入公式DATEDIF(B2,TODAY(),"y") 然后将C2单元格公式下拉填充到底即可完成。 下面跟大家简单介绍一下这个公式&#xff0c;首先是Today函数&#xff0c;它可…

用计算机计算年轻龄,2020年年龄虚岁对照表 虚岁计算器2020

小时候总听着老人说虚岁、周岁&#xff0c;可是还是孩子的我们却是不了解的&#xff0c;总是跟着父母复述给老人听&#xff0c;长大后总是在自己的年龄上说年轻些&#xff0c;以为这样就能保住青春&#xff0c;现在我们就一起来看看2020年年龄虚岁对照表是什么&#xff1f;虚岁…

html计算年龄代码,js+html实现周岁年龄计算器

本文实例为大家分享了jshtml实现周岁年龄计算器的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 输入界面展示: 输出结果展示: 实现代码: 请输入您的出生日期(yyy/mm/dd): / / 计算 //计算周岁年龄的函数 function getAge() { //定义返回值 var returnAge //获取输入…

js如何计算年龄?如何创建Javascript 年龄计算器?

如何创建年龄计算器? 要构建这个项目,我们需要HTML,CSS和Javascript。 让我们来看看这个项目是如何工作的。项目由输入日期组成。用户必须单击它并选择他们的出生日期或任何所需的日期。在此之后,用户必须单击计算按钮。用户单击计算按钮后,我们会根据他们输入的日期(…

Win32计算器:输入出生年月日,输出周岁,星座以及距离下一次生日的天数

Win32计算器 实验要求&#xff1a; 1、完成一个win32计算器&#xff0c;具体实现的功能为&#xff1a;输入出生年月日&#xff0c;可以输出对应的周岁&#xff0c;星座&#xff0c;距离下一个生日的天数&#xff1b; 2、提交内容为&#xff1a;设计思路的文档、项目代码和可执…

用计算机算出别人多少岁,年龄计算器 年龄计算器查询

【www.wzktys.com--资料共享】 虚岁年龄是中国在习惯上常用的年龄计算方法&#xff0c;按出生后所经历的日历年头计算,即生下来就算1岁,以后每过一次新年便增加1岁。一般按农历新年算&#xff0c;也有按公历算的。例如&#xff0c;12月末出生的婴儿&#xff0c;出生后就算1岁,过…