首页 / ORACLE / Oracle笔记2(函数)
Oracle笔记2(函数)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle笔记2(函数),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3916字,纯文字阅读大概需要6分钟。
内容图文
![Oracle笔记2(函数)](/upload/InfoBanner/zyjiaocheng/912/10a9d20616bc485d8c822d6cd73f86c8.jpg)
Oracle笔记2
函数
字符串函数
函数名称 | 描述 |
---|---|
字符串UPPER(列 / 字符串) | 转大写 |
字符串LOWER(列 / 字符串) | 转小写 |
字符串INITCAP(列 / 字符串) | 开头首字母大写,其它的全部小写 |
数字LENGTH(列 / 字符串) | 获取长度 |
字符串SUBSTR(列 / 字符串,开始索引,[长度]) | 进行字符串的截取,如果没有设置长度,表示从开始一直截取到结尾 |
字符串REPLACE(列 / 字符串,旧内容,新内容) | 将指定字符串的数据以新数据替换旧数据 |
转大写、小写操作
- 将所有的姓名转小写
SELECT LOWER(ename) FROM emp;
- 由用户输入要查询的员工
SELECT * FROM emp WHERE ename = UPPER('&inputname');
INITCAP操作
- 将所有雇员的姓名以首字母大写的形式保存
SELECT ename, INITCAP(ename) FROM emp;
LENGTH操作
- 查询雇员姓名长度为5的全部雇员信息
SELECT * FROM emp WHERE LENGTH(ename) = 5;
SUBSTR操作,字符串截取
- 截取每个雇员姓名的前三个字母
SELECT ename, substr(ename,1,3)FROM emp;
- 截取每个雇员姓名的后三个字母
SELECT ename, substr(ename,-3) FROM emp;
- 姓名中含A的字母换成B
SELECT ename, REPLACE(ename,'A','XX') FROM emp;
数值函数
函数名称 | 描述 |
---|---|
数字 ROUND(列 / 数字,[小数位]) | 实现四舍五入,可以设置保留小数位 |
数字 TRUNC(列 / 数字,[小数位]) | 实现数字的截取 |
数字 MOD(列 / 数字, 列 / 数字) | 求模(求余数) |
验证ROUND函数
- 使用ROUND()函数
SELECT ROUND(789.5671234) FROM dual;
-- 790
SELECT ROUND(789.5671234,2) FROM dual;
-- 789.57
SELECT ROUND(789.5671234,-2) FROM dual;
-- 800
验证TRUNC函数
SELECT TRUNC(789.5671234),TRUNC(789.5671234,2),TRUNC(789.5671234,-2) FROM dual;
-- 789,789.56,700
验证MOD函数
SELECT MOD(10, 3) FROM dual;
-- 1
日期函数
函数名称 | 描述 |
---|---|
日期 ADD_MONTHS(列 /日期,月数) | 参数+添加的月数 |
数字 MONTHS_BETWEEN(列 /日期,列 /日期) | 返回两个日期参数的间隔月数 |
日期 LAST_DAY(列 /日期) | 取得指定日期所在月的最后一天 |
日期 NEXT_DAY(列 /日期,星期X ) | 返回下一周指定星期的具体日期 |
- 查询出每个雇佣的编号、姓名、职位、已经被雇佣的天数
SELECT empno, ename, job, TRUNC(sysdate-hiredate) FROM emp;
- 在当前日期下增加指定的月份(就是4个月后的具体时间)
SELECT ADD_MONTHS(SYSDATE,4) FROM dual;
- 计算所有雇员到今天为止雇佣的月数
SELECT empno, ename, TRUNC(MONTHS_BETWEEN(sysdate,hiredate)) FROM emp;
- 计算当前月份的最后一天日期
SELECT LAST_DAY(hiredate) FROM emp;
- 查询雇员是在雇佣月倒数第二天雇佣的雇员
SELECT empno, ename, hiredate FROM emp WHERE hiredate = LAST_DAY(hiredate)-2;
- 下一个礼拜一的日期
SELECT NEXT_DAY(sysdate, '星期一') FROM dual;
- 以年月日的方式,计算出每个员工雇佣的年限
SELECT empno, ename, hiredate,
TRUNC(MONTHS_BETWEEN(sysdate, hiredate)/12) year,
TRUNC(MOD(MONTHS_BETWEEN(sysdate, hiredate),12)) month,
TRUNC(SYSDATE - ADD_MONTHS(hiredate,MONTHS_BETWEEN(sysdate,hiredate))) day
FROM emp;
转换函数
函数名称 | 描述 |
---|---|
字符串 TO_CHAR(列 /日期/数字,转换格式) | 将日期或数字格式化为字符串 |
日期 TO_DATE(列/字符串,转换格式) | 按照指定的转换格式,将字符串变为日期 |
数字 TO_NUMBER(列/字符串) | 将字符串变数字 |
-
转字符串函数: TO_CHAR()
- 日期:年(yyyy)、月(mm)、日(dd)
- 时间:时(hh、hh24)、分(mi)、秒(ss)
- 数字:任意数字(9)、本地货币符号(L)
-
范例:将日期显示格式化
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM dual;
-- 2015-08-11
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD hh24-mi-ss') FROM dual;
- 实现日期数据的拆分:
SELECT TO_CHAR(SYSDATE,'YYYY'), TO_CHAR(SYSDATE,'MM'),TO_CHAR(SYSDATE,'DD') FROM dual;
- 查询出所有在2月份雇佣的雇员
SELECT * FROM emp where TO_CHAR(hiredate,'MM') = 2;
- 转换货币
SELECT TO_CHAR(54896358,'L999,999,999') FROM dual;
- 格式化日期时间
SELECT TO_DATE('2019-4-22','yyyy-mm-dd') FROM dual;
通用函数
函数名称 | 描述 |
---|---|
数字 NVL(列 /NULL,默认值) | 如果传入的内容是NULL,则使用默认数值处理,如果不是空使用原始数值处理 |
数据类型 DECODE(列/字符串 /数值,比较内容1,显示内容1… ) | 设置内容进行比较,内容相同,按设置的显示内容进行显示,如果都不相同,按默认内容输出 |
处理null函数
- 范例:要求查询出每个雇员的编号、姓名、基本工资、佣金、年薪
SELECT empno, ename, sal, comm, (nvl(comm,0)+sal)*12 FROM emp;
decode()函数
-范例:将所有的职位信息替换为中文显示
SELECT ename, job, decode(job,'CLEAR','办事员','SALESMAN','销售','MANAGER','经理','---') FROM emp;
内容总结
以上是互联网集市为您收集整理的Oracle笔记2(函数)全部内容,希望文章能够帮你解决Oracle笔记2(函数)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。