Oracle已经内建了许多函数,不同的函数有不同的作用和用法,有的函数只能作用在一个记录行上,有的能够作用在多个记录行上,不同的函数可能处理不同的数据类型。常见的有两类,单行函数和分组函数 ,下面将逐一讲解区别及运用。

初次进入的请先学习另外俩篇开始ORACLE基本表操作常用语句整理以及Oracle查询语句及运用语句整理

一、字符函数

字符函数的输入参数为字符类型,其返回值是字符类型或数字类型

字符函数:大小写控制函数、字符控制函数

大小写控制函数:UPPER、LOWER、INTCAP 返回值均为字符类型,改变大小写

UPPER(CHAR):该函数主要用于将字符串转化为大写格式
LOWER(CHAR):该函数用于将字符串转化为小写格式
INITCAP(CHAR):该函数用于将字符串中的每个单词的首字母大写,其余字符为小写
举例说明:将EMP表中JOB的字段转化为大写显示
SELECT * FROM EMP WHERE JOB=UPPER('SALESMAN'); 由于EMP表中为大写所以敲一下熟悉一下就好
等价于:SELECT * FROM EMP WHERE UPPER(JOB)='SALESMAN';
举例说明:将EMP表中JOB的字段转化为小写显示
SELECT * FROM EMP WHERE JOB=LOWER('CLERK');
等价于SELECT * FROM EMP WHERE LOWER(JOB)='CLERK';
举例说明:将EMP表中首字符转化为大写其余为小写显示
SELECT EMPNO,INITCAP(ENAME) FROM EMP ;
输出结果:
1   7369    Smith
2   7499    A_Llen
--总结:可以写成函数名(表字段)=‘值’也可以写成表字段=函数名(‘值’)

字符控制函数:CONCAT、SUBSTR、LENGTH、INSTR、LPAD、RPAD、TRIM、ERPLACE

DUAL 虚拟的表
CONCAT(STR1,STR2):该函数用于字符串的连接
举例说明:SELECT CONCAT('HELLO','ORACLE') FROM DUAL; 输出结果为:HELLOORACLESUBSTR(CHAR,M[,N]):该函数用于截断字符串,char指定表字段名,m用于指定从哪个位置开始截取,n用于指定截取长度,如果m为0,则从首字符开始
举例说明:分别截取1,3;0,3,-1,1
SELECT SUBSTR('HELLO',1,3) FROM DUAL; 结果:HEL
SELECT SUBSTR('HELLO',0,3) FROM DUAL; 结果:HEL
SELECT SUBSTR('HELLO',-1,1) FROM DUAL; 结果:OLENGTH(char):该函数用于返回字符串的长度,字符串中我的后缀空格也记作字符串的长度
举例说明:统计Oracle这个字符串的长度
SELECT LENGTH('Oracle') FROM DUAL; 结果:7INSTR(CHAR,CHAR2[,N[,M]]):该函数用于取得子串在字符串中的位置,Char1用于指定源字符串,char2用于指定子串,n用于指定起始搜索位置(默认值:1),M用于指定子串的第m次出现的次数(默认值:1)
举例说明:输出HELLO Oracle中Oracle的出现位置在哪
SELECT INSTR('HELLOE Oracle','Oracle') FROM DUAL;结果:7
举例说明:输出HELLO Oracle HELLO Oracle 中第二个Oracle的出现位置在哪
SELECT INSTR('HELLOE Oracle HELLO Oracle','Oracle',1,2) FROM DUAL;结果:20LPAD(CHAR1,N,CHAR2):该函数用于在字符串的左端填充字符,CHAR1用于指定源字符串,CHAR2用于指定被填充的字符,N用于指定填充的CHAR1总长度
举例说明:在HELLO左侧填充5个#
SELECT IPAD('HELLO',10,'#') FROM DUAL; 结果:#####HELLORPAD(CHAR1,N,CHAR2):该函数用于在字符串有段填充字符,CHAR1用于指定源字符串,CHAR2用于指定被填充的字符,N用于指定填充后的CHAR1的总长度
举例说明:在HELLO右侧填充3个#
SELECT RPAD('HELLO',8,'#') FROM DUAL;结果:HELLO###REPLACE(CHAR,SEARCH_STRING[,REPLACEMENT_STRING]):该函数用于铁环与指定被替换字段,REPLACEMENT_STRING用于指定替换子串
举例说明:
SELECT REPLACE('HELLO WORD',WORD,'ORACLE') FROM DUAL;结果:HELLO ORACLE

二、数值函数

数值函数的输入参数和返回值都是数字类型

常用的数值函数:ROUND(),TRUNC(),MOD()

四舍五入ROUND

四舍五入:ROUND(N[,M]) 该函数用于返回四舍五入的结果,其中N可以使任意数字,M必须是整数
举例说明:
ROUND(25.328) 结果:25 四舍五入整数位
ROUND(25.328,2) 结果:25.33 四舍五入到小数点第2位
ROUND(25.328,-1) 结果:30 四舍五入到小数点前的第1位

截取数字TRUNC

截取数字:TRUNC(N,[M])该函数用于截取数字,其中N可以是任意数字,M必须是正数
举例说明:
TRUNC(25.328) 结果:25
TRUNC(25.328,2) 结果:25.32
TRUNC(25.328,-1) 结果:20

求模MOD

求模(求余数):MOD(M,N)
该函数主要用于取得来个数字相除后的余数,如果数字N为0则返回结果为M
举例说明:
MOD(25,6) 结果:1
MOD(25,0) 结果:25

三者实例说明

实例说明:求员工的日工资
SELECT ROUND(MGR/30),TRUNC(MGR/30) FROM EMP;
SELECT ROUND(MGR/30,2),TRUNC(MGR/30,2)FROM EMP;
SELECT ROUND(MGR/30,-1),TRUNC(MGR/30,-1)FROM EMP;

三、日期函数

日期函数:用于处理日期时间类型的函数

常用的日期函数:SYSDATE、MONTHS_BETWEEN、ADD_MONTHS、NEXT_DAY、LAST_DAY、ROUND、TRUNC

系统日期SYSDATE:该函数用于返回当前系统日期

举例说明:关键字SYSDTATE 今天
SELECT SYSDATE FROM DUAL;
SELECT SYSDATE-1 AS 昨天,SYSDATE AS 今天, SYSDATE+1 AS 明天 FROM DUAL;
输出结果:1   2019/9/15 18:16:58  2019/9/16 18:16:58  2019/9/17 18:16:58

月数俩者相差MONTHS_BETWEEN(D1,D2) D1表示当前的

举例说明:计算员工入职多长时间
SELECT MONTHS_BETWEEN(SYSDATE,HIREDATE) FROM EMP;
SELECT ROUND(MONTHS_BETWEEN(SYSDATE,HIREDATE)) FROM EMP;
SELECT ROUND(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12) FROM EMP;

ADD_MONTHS

ADD_MONTHS(D,N):该函数应用于返回特定日期时间之后或之前的月份对应的日期时间,D用于指定日期时间,N可以是任意整数
举例说明:查询出每位员工入职30年后的日期
SELECT ENAME,ADD_MONTHS(HIREDATE,30*12)FROM EMP

返回指定NEXT_DAY

NEXT_DAY(D,CHAR):该函数用于返回特定日期之后的第一个工作日所对应的日期,D用于指定日期值,CHAR用于指定工作日
举例说明:查询下周一的日期
SELECT SYSDATE,NEXT_DAY(SYSSDATE,'星期一') FROM DUAL;

返回特定的日期LAST_DAY

LAST_DAY(D):该函数用于返回特定日期所在月份的最后一天
举例说明:查询出当前日期的月份最后一天
SELECT SYSDATE,LAST_DAY(SYSDATE) FROM DUAL;

四舍五入返回日期时间ROUND

ROUND(D[,FMT]):该函数用于返回日期时间的四舍五入的结果
D用于指定日期的时间值,FMT用于指定四舍五入的方式
举例说明:获取当前时间为2019-09-15
SELECT ROUND(SYSDATE,'YEAR') FROM DUAL; 结果:2020/1/1
SELECT ROUND(SYSDATE,'MONTH')FROM DUAL; 结果:2019/9/1

截断日期函数TRUNC

TRUNC(D,[,FMT]):该函数用于截断日期时间数据
D用于指定日期的时间值,FMT用于指定截断日期时间数据的方法
举例说明:
SELECT TRUNC(SYSDATE,'YEAR') FROM DUAL;
SELECT TRUNC(SYSDATE,'MONTH') FROM DUAL;

四、转换函数

将数值类型转换为字符类型TO_CHAR

TO_CHAR(N[,FMT]):将数值类型转换为字符类型
N用于指定数值,FMT用于指定数字格式的模型
格式模型常用元素如下:
9:显示数字,并且会忽略前导0
0:显示数字,并且位数不足时用0补齐
.:在指定位置显示小数点
,:在指定位置显示逗号
$:在数字签名加美元符号
L:在数字前加本地货币符号,也就是默认的$
--举例说明:日期转换为字符获得当前年
select to_char(sysdate, 'yyyy') from dual;
--获得当前年月日
SELECT TO_CHAR(HIREDATE, 'YYYYMMDD') FROM  EMP;
SELECT TO_CHAR(HIREDATE, 'YYYY"年"MM"月"DD"日"') FROM  EMP;
SELECT TO_CHAR(HIREDATE, 'YYYY-MM-DD') FROM  EMP;
--返回在星期, 星期日为1,星期一为2,星期二为3.........星期六为7
select to_char(sysdate, 'D') from dual;
举例说明:格式化价格样式
select to_char('11112222', 'L999,999,999') from dual; --¥11,112,222

将字符类型转换为日期类型TO_DATE

TO_DATE(CHAR[,FMT[,'NLSPARAMS']]):该函数用于将字符串转换为日期类型的数据
CHAR用于匹配日期数据的字符串,FMT用于指定日期格式模型,‘NLSPARAMS’用于指定日期语言
举例说明:查看1982年嘿嘿入职的员工信息
SELECT ENAME,HIREDATE FROM EMP WHERE HIREDATE>TO_DATE('1981-12-31','YYYY-MM-DD');
--转化成日期
select to_date('2017-06-19', 'YYYYMMdd') from dual; 

将数字转换数值类型TO_NUMBER

TO_NUMBER(N[,FMT]):该函数可以将包含数字的字符串转换成数值类型
N是包含数字的字符串,FMT用于指定数字格式模型
举例说明:显示工资大于7000的所有源的姓名和工资
SELECT ENAME,MGR FROM EMP WHERE MGR>TO_NUMBER('¥7000','L99999');

五、通用函数

NVL处理空值

NVL(EXPR1,EXPR2):该函数用于处理NULL
如果EXPR1是NULL则返回EXPR2,反之则返回EXPR1
举例说明:
SELECT ENAME,SAL,COMM,SAL+NVL(COMM,0) FROM EMP;NVL2(EXPR1,EXPR2,EXPR3):与NVL一致都是处理NULL的
不同的是如果EXPR1不是空值,则返回2如果为NULL则返回EXPR3举例说明:
SELECT ENAME,SAL,COMM,NVL2(COMM,SAL+COMM,SAL) FROM EMP;NVLIF(EXPR1,EXPR2):该函数用于比较表达式,如果二者相等则返回NULL,否则返回EXPR1
举例说明:查询所有源的入职日期,并把本月初入职的员工月其他员工进行区分
SELECT EMPNO,ENAME,HIREDATE,NULLIF(HIREDATE,TRUNC(SYSDATE,'MONTH')) FROM EMP;COALESCE(EXPR1[,EXPR2][,...]):该函数用于返回表达式列表中第一个NOT NULL表达式的结果
举例说明:SELECT ENAME,SAL,COMM,COALESCE(SAL+COMM,SAL)FROM EMP;

Oracle常用函数解析运用整理相关推荐

  1. oracle中常用关键字,oracle常用函数及关键字笔记

    --函数及关键字-- 1.trim,ltrim,rtrim 去除字符,无指定默认去除空格 SELECT TRIM('a' FROM 'aafhfhaaaaaaaa'), LTRIM('aafhfhaa ...

  2. 机器学习之Python常用函数及模块整理

    机器学习之Python常用函数及模块整理 1. map函数 2. apply函数 3. applymap函数 4. groupby函数 5. agg函数 6. lambda函数 7. rank函数 8 ...

  3. ORACLE 常用函数——聚合函数

    ORACLE 常用函数 这个系列我将整理一些日常我们经常使用到的ORACLE函数,鉴于篇幅太长,我大体会按下面分类来整理.汇总这些常用的ORACLE函数,如果有些常用函数没有被整理进来,也希望大家指点 ...

  4. oracle常用函数api,Oracle-API OracleAPI、oracle10G函数大全(常用函数)、 联合开发网 - pudn.com...

    Oracle-API 所属分类:Oracle数据库 开发工具:SQL 文件大小:13650KB 下载次数:20 上传日期:2013-09-03 13:09:39 上 传 者:蓝 说明:  Oracle ...

  5. sqlserver oracle对比,sqlserver和oracle常用函数对比

    sqlserver和oracle常用函数对比 数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S: ...

  6. Oracle常用函数总结

    文章目录 Oracle常用函数 1. 时间及日期处理函数 1.1 时间格式表示方法 1.2 日期和字符串之间的转换 1.3 时间及日期的计算方法 1.4 日期常见问题处理 2. 字符串函数及数字截取函 ...

  7. oracle常用函数number,Oracle 常用函数介绍

    Oracle常用函数介绍,包括日期函数.类型转换函数 常用日期函数 1.add_months()函数可以得到指定日期之前或之后n个月的日期 date_value:=add_months(date_va ...

  8. Oracle常用函数汇总记录

    Oracle常用函数汇总记录 一.SUBSTR 截取函数 用法:substr(字符串,截取开始位置,截取长度) //返回截取的字, 字符串的起始位置为1,截取时包含起始位置字符 1.SUBSTR( & ...

  9. oracle regr,oracle常用函数总结(63)

    oracle常用函数总结(63) 63.REGR_ (Linear Regression) Functions功能描述:这些线性回归函数适合最小二乘法回归线,有9个不同的回归函数可使用. REGR_S ...

  10. python重要的第三方库pandas模块常用函数解析之DataFrame

    pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...

最新文章

  1. ttf,woff2字体转化为png图片,python读取图片
  2. 谈谈最近独立做项目的一些事情,一些小经验,分享之!
  3. 业务技术协同线上化的研发管理实战
  4. 设计模式之策略模式和状态模式
  5. html超链接使用d,HTML图像的调用和超链接
  6. C语言课后习题(63)
  7. mysql geometry 维度_使用MySQL的geometry类型处理经纬度距离问题的方法
  8. Qt反射内存读取大文件
  9. 集合set中的基数cardinality是什么意思
  10. MyBatis源码阅读(六) ---mapper方法具体执行流程分析
  11. Android:安卓虚拟机(Dalvik ART)学习
  12. 对DS证据理论的改进如yager、bayes、孙权、murphy的改进处理,及皮尔逊改进处理
  13. ROS机器人操作系统学习记录
  14. 单片机、ARM与DSP对比
  15. AirSim中的物理引擎
  16. Mac好用的截图工具:Snipaste
  17. 推广微信公众号最基本的渠道
  18. 单片机计算机基础知识总结,自学单片机第九篇:基础知识--计算机基础操作
  19. java 如何将word 转换为ftl_使用FreeMarker导出word文档(支持导出图片)
  20. CF417D Cunning Gena

热门文章

  1. HDU - 4282 A very hard mathematic problem
  2. 节约里程法求解CVRP问题
  3. 自定义图标——阿里图标库
  4. 选择排序 ( 直接选择排序 堆排序 )
  5. 【机器学习笔记1】一元线性回归模型及预测
  6. 麻瓜编程python web百度网盘_麻瓜编程_Python Web开发工程师_附课程配套资料
  7. 财富趋势招股书看点:研发中心在武汉 去年员工月均工资1.06万元
  8. 企业信息化管理软件,如何走出开发困境
  9. Beyond Compare代码对比工具国内镜像下载
  10. Android APK实现WIFI协议包抓取(上)-实现思路