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 ...
随机推荐
- 《OD学spark》20161022
一.Spark Core 1. 什么是Spark Shuffle Wide Dependencies *ByKey: groupByKey,reduceByKey 关联操作:join,cogroup ...
- 2017-10-4 清北刷题冲刺班a.m
P101zhx a [问题描述]你是能看到第一题的 friends 呢.——hjaHja 拥有一套时光穿梭技术,能把字符串以超越光速的速度传播,但是唯一的问题是可能会 GG.在传输的过程中,可能有四种 ...
- [Xcode 实际操作]四、常用控件-(13)使用UIWebView控件加载网页
目录:[Swift]Xcode实际操作 本文将演示网页视图的使用. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit class ViewC ...
- spring boot 使用WebSocket与前端进行byte字节数组交互
一.装逼前先热热身 无论是比较传统的 web项目 还是近几年流行的前后端分离,后端只独立提供数据交互接口服务的项目,都避免不了数据之间交互格式的选择. 从很早之前的 xml 格式 到现在最火热的jso ...
- luoguP4931 情侣?给我烧了!(加强版)
luogu 普通版题解:https://www.cnblogs.com/lcxer/p/10876856.html 在普通版里,我们考虑对于\(n\)对情侣,恰好\(k\)对是和谐的方案数是 \[ a ...
- ROS上利用usb_cam读取摄像头图像
电脑需要有USB3.0的接口 我使用的环境为:Ubuntu16.04LTS ROS版本是kinetic 一.usb_cam驱动的安装 1.创建ROS工作空间 mkdir -p myros/src cd ...
- ubuntu 14.04安装octave,及其使用
从库安装: sudo apt-add-repository ppa:octave/stable sudo apt-get update sudo apt-get install octave 使用:以 ...
- Sharepoint JSCOM 列表操作
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', retrieveListItemsInclude); //确保js文件加载,再执行方法 function ...
- Oracle存储过程实例分析总结(代码)
1.存储过程结构 1.1 第一个存储过程 ? 1 2 3 4 5 6 7 8 9 10 11 12 CREATE OR REPLACE PROCEDURE proc1 ( para1 varc ...
- java与模式读后总结
一 老规则边看边写书上的代码,磨磨蹭蹭三个多星期终于把一本1000+的java与模式看完了. 于是,在这里贴上自己对每个模式的思考和总结,其实这个东西在我边看边写的时候已经写了一大半,博文再写一次算是 ...