2018.5.25 Oracle相关的函数命令
第03章 函数
1 Oracle的函数
Oracle的函数和java中的方法一样, 能完成一定的功能
2 字符处理类函数
--需求1:把ename字段转换成小写
select lower(ename) from emp;
--需求2:查询scott用户的用户名称和账户状态
select username,account_status from dba_users where username='scott'; --查询不到
select username,account_status from dba_users where lower(username)='scott'; --可查询到
--字符转换大写
select upper('aaa') from dual;
--将每个单词的首字母转换成大写(单词之间使用空格隔开)
select initcap('lan qiao bei') from dual;
--字符串连接
select concat('lan',concat('qiao','bei')) from dual;
--字符串截取substr(input,m,[n]) m:截取的起始位置 n:截取的字符个数
select substr('我爱蓝桥', 2) from dual;
select substr('我爱蓝桥', 2,1) from dual;
--字符长度
select length('我爱蓝桥') from dual;
--查找字符出现的位置instr(input,char,[m],[n]) m:查询的起始位置 n:查询第几次出现
select instr('我爱蓝桥,我爱蓝桥的老师','爱') from dual;
select instr('我爱蓝桥,我爱蓝桥的老师','爱',1,2) from dual;
--字符串替换replace(input,char1,char2)
select replace('我爱蓝桥,我爱蓝桥老师','爱','更爱') from dual;
--从左边或者右边使用指定字符串填充 lpad(input,n,char) rpad(input,n,char) n:填充后的字符长度(汉字算2个字符)
select lpad('我爱蓝桥',10,'a') from dual;
select rpad('我爱蓝桥',10,'a') from dual;
3 数字函数
--四舍五入函数round(n,i) n:数字 i:小数点长度
select round(22.5) from dual;
select round(22.555,2) from dual;
--截取数字trunc(n,i) n:数字 i:小数点长度
select trunc(22.99) from dual;
select trunc(22.559,2) from dual;
ceil:往上取整,与小数位的大小无关
floor:往下取整,与小数位的大小无关.
mod:取余。求模。
4 日期函数
--ADD_MONTHS(d,f):指定时间d,推移f月,得到推移后的时间
--例:在“2010-05-12”时间上推移3个月后的时间
select ADD_MONTHS(to_date('2012-05-12','yyyy-mm-dd'),3) from dual;
--Months_between(d1,d2):显示两个时间相差的月份,d1:第一个时间,d2:第二个时间
--注意:必须注意的是,d1与d2都为Date类型,不然会出现错误。
--例:计算 2012-12-12 与 2012-2-12 相差的月份。
SELECT MONTHS_BETWEEN(to_date('2012-12-12','yyyy-MM-dd'),
to_date('2012-2-12','yyyy-MM-dd'))FROM dual;
--last_day(m):返回特定日期所在月份的最后一天
--例:计算“2010-10-12”所在月份的最后一天
SELECT last_day(to_date('2010-10-12','yyyy-mm-dd')) FROM dual;
--next_day(x,y)用于计算x时间后第一个星期y的时间。
--例子,当前时间是2014-08-15
select next_day(to_date('2014-08-15','yyyy-mm-dd'),'星期二')from dual;
--返回的结果是: 2014-08-19
--trunc(date,[fmt]):处理时间
--date:一个日期值
--fmt :日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
--例:
trunc(sysdate,'yyyy') --返回当年第一天.
trunc(sysdate,'mm') --返回当月第一天.
trunc(sysdate,'d') --返回当前星期的第一天.
trunc(sysdate,'dd')--返回当前年月日
trunc(sysdate, 'hh')--返回当前小时
trunc(sysdate, 'mi')--返回当前分钟
--trunc(number,[decimals]):处理数字
--number: 待做截取处理的数值
--decimals:指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
--例:
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80
5 转换函数
--to_char:日期转化为字符串
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;
--获取时间的年
select to_char(sysdate,'yyyy') as nowYear from dual;
--获取时间的月
select to_char(sysdate,'mm') as nowMonth from dual;
--获取时间的日
select to_char(sysdate,'dd') as nowDay from dual;
--获取时间的时
select to_char(sysdate,'hh24') as nowHour from dual;
--获取时间的分
select to_char(sysdate,'mi') as nowMinute from dual;
--获取时间的秒
select to_char(sysdate,'ss') as nowSecond from dual;
--to_date:把字符串类型日期转换为date类型日期。
select to_date('2014-02-11','yyyy-mm-dd') from dual
--需求3:查询入职日期在‘1981-2-20 12:34:56’之后的员工的姓名和入职日期
select ename,hiredate from emp where hiredate>to_date('1981-2-20 12:34:56','YYYY-MM-DD HH24:MI:SS');
6 通用函数
--nvl函数 NVL(参数1,参数2)
select nvl(null,'空') from dual;
select nvl('非空','我不会输出') from dual;
--decode函数decode(参数一,参数二,参数三,....)
select decode(JOB,
'CLERK','业务员',
'MANAGER','经理',
'SALESMAN','销售员',
'PRESIDENT','老板',
'ANALYST','分析员'
) from emp;
--case when
select ename,case job
when 'CLERK' then '业务员'
when 'MANAGER' then '经理'
when 'SALESMAN' then '销售员'
when 'PRESIDENT' then '老板'
when 'ANALYST' then '分析员'
else '其它'
end case
from emp;
2018.5.25 Oracle相关的函数命令的更多相关文章
- Linux下使用ps命令来查看Oracle相关的进程
Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ...
- Linux下可以使用ps命令来查看Oracle相关的进程
Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ...
- [ SHELL编程 ] 编程常用的ORACLE相关命令
本文主要描述shell编程中常用的Oracle相关命令. 1.sqlplus -L/-S参数 sqlplus -L user/password #-L参数表示用户只尝试登录一次, 而不是在出错时再次提 ...
- PL/SQL详细介绍,设置oracle相关
1. 实现参照完整性 指若两个表之间具有主从关系(即主外键关系),当删除主表数据时,必须确保相关的从表数据已经被删除. 当修改主表的主键列数据时,必须确保相关从表数据已经被修改.为了实现级 ...
- Linux下的启动oracle的EM的命令
Linux下的启动oracle的EM的命令 1.启动数据库 su - oracle $sqlplus / as sysdba sql>startup 2.启动监听 $lsnrctl LSNRCT ...
- 个人永久性免费-Excel催化剂功能第56波-获取Excel对象属性相关自定义函数
之前零散开发过一些自定义函数获取Excel对象属性,此次再细细地把有价值的属性都一一给开发完成,某些场景下,有这些小函数还是可以比较方便地实现一些通过Excel界面没法轻松获取到的信息. 修复与更新 ...
- Oracle数据库导入导出命令总结
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中.利用 ...
- Oracle数据库导入导出命令总结 (详询请加qq:2085920154)
分类: Linux Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的 ...
- Oracle日期时间函数大全
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...
随机推荐
- Python中的矩阵、多维数组:Numpy
Numpy 是Python中科学计算的核心库.它提供一个高性能多维数据对象,以及操作这个对象的工具.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对 ...
- EOS 数据签名与公匙验证代码用例
本文编写了一个小例子诠释了EOS是如何对数据签名与校验的,通过本文可以理解了签名的重要性和数据的不可篡改性. 系统: ubuntu 版本为EOS1.1.1 注:因为本文的程序是把EOS里面的钱包和f ...
- asddf
https://docs.saltstack.com/en/getstarted/fundamentals/index.html https://pypi.org/simple/cherrypy/ 安 ...
- Error: npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
执行npm install 时,提示警告信息: Error: npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0. ...
- Collections.copy
List<String> names = Arrays.asList(new String[nameList.size()]); Collections.copy(names, nameL ...
- spring动态线程池(实质还是用了java的线程池)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 纯干货:Linux抓包命令集锦
/******************************************************************************************* 版权声明* 本 ...
- Spring学习(六)整合web开发
https://www.cnblogs.com/Leo_wl/p/4459274.html 1.加载Spring核心配置文件 //1.加载Spring配置文件,根据创建对对象 ApplicationC ...
- Oracle 取上周一到周末的sql
-- 这样取的是 在一周内第几天,是以周日为开始的 select to_char(to_date('20131005','yyyymmdd'),'d') from dual; --结果:7 注释:20 ...
- Asp.net中的ViewState用法
Session,ViewState用法基本理论:session值是保存在服务器内存上,那么,可以肯定,大量的使用session将导致服务器负担加重. 而viewstate由于只是将数据存入到页面隐藏控 ...