Oracle常用函数解析运用整理
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常用函数解析运用整理相关推荐
- oracle中常用关键字,oracle常用函数及关键字笔记
--函数及关键字-- 1.trim,ltrim,rtrim 去除字符,无指定默认去除空格 SELECT TRIM('a' FROM 'aafhfhaaaaaaaa'), LTRIM('aafhfhaa ...
- 机器学习之Python常用函数及模块整理
机器学习之Python常用函数及模块整理 1. map函数 2. apply函数 3. applymap函数 4. groupby函数 5. agg函数 6. lambda函数 7. rank函数 8 ...
- ORACLE 常用函数——聚合函数
ORACLE 常用函数 这个系列我将整理一些日常我们经常使用到的ORACLE函数,鉴于篇幅太长,我大体会按下面分类来整理.汇总这些常用的ORACLE函数,如果有些常用函数没有被整理进来,也希望大家指点 ...
- oracle常用函数api,Oracle-API OracleAPI、oracle10G函数大全(常用函数)、 联合开发网 - pudn.com...
Oracle-API 所属分类:Oracle数据库 开发工具:SQL 文件大小:13650KB 下载次数:20 上传日期:2013-09-03 13:09:39 上 传 者:蓝 说明: Oracle ...
- sqlserver oracle对比,sqlserver和oracle常用函数对比
sqlserver和oracle常用函数对比 数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S: ...
- Oracle常用函数总结
文章目录 Oracle常用函数 1. 时间及日期处理函数 1.1 时间格式表示方法 1.2 日期和字符串之间的转换 1.3 时间及日期的计算方法 1.4 日期常见问题处理 2. 字符串函数及数字截取函 ...
- oracle常用函数number,Oracle 常用函数介绍
Oracle常用函数介绍,包括日期函数.类型转换函数 常用日期函数 1.add_months()函数可以得到指定日期之前或之后n个月的日期 date_value:=add_months(date_va ...
- Oracle常用函数汇总记录
Oracle常用函数汇总记录 一.SUBSTR 截取函数 用法:substr(字符串,截取开始位置,截取长度) //返回截取的字, 字符串的起始位置为1,截取时包含起始位置字符 1.SUBSTR( & ...
- oracle regr,oracle常用函数总结(63)
oracle常用函数总结(63) 63.REGR_ (Linear Regression) Functions功能描述:这些线性回归函数适合最小二乘法回归线,有9个不同的回归函数可使用. REGR_S ...
- python重要的第三方库pandas模块常用函数解析之DataFrame
pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...
最新文章
- ttf,woff2字体转化为png图片,python读取图片
- 谈谈最近独立做项目的一些事情,一些小经验,分享之!
- 业务技术协同线上化的研发管理实战
- 设计模式之策略模式和状态模式
- html超链接使用d,HTML图像的调用和超链接
- C语言课后习题(63)
- mysql geometry 维度_使用MySQL的geometry类型处理经纬度距离问题的方法
- Qt反射内存读取大文件
- 集合set中的基数cardinality是什么意思
- MyBatis源码阅读(六) ---mapper方法具体执行流程分析
- Android:安卓虚拟机(Dalvik ART)学习
- 对DS证据理论的改进如yager、bayes、孙权、murphy的改进处理,及皮尔逊改进处理
- ROS机器人操作系统学习记录
- 单片机、ARM与DSP对比
- AirSim中的物理引擎
- Mac好用的截图工具:Snipaste
- 推广微信公众号最基本的渠道
- 单片机计算机基础知识总结,自学单片机第九篇:基础知识--计算机基础操作
- java 如何将word 转换为ftl_使用FreeMarker导出word文档(支持导出图片)
- CF417D Cunning Gena
热门文章
- HDU - 4282 A very hard mathematic problem
- 节约里程法求解CVRP问题
- 自定义图标——阿里图标库
- 选择排序 ( 直接选择排序 堆排序 )
- 【机器学习笔记1】一元线性回归模型及预测
- 麻瓜编程python web百度网盘_麻瓜编程_Python Web开发工程师_附课程配套资料
- 财富趋势招股书看点:研发中心在武汉 去年员工月均工资1.06万元
- 企业信息化管理软件,如何走出开发困境
- Beyond Compare代码对比工具国内镜像下载
- Android APK实现WIFI协议包抓取(上)-实现思路