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 ...
随机推荐
- 在 windows 下搭建 IDEA + Spark 连接 Hive 的环境
为了开发测试方便,想直接在 IDEA 里运行 Spark 程序,可以连接 Hive,需不是打好包后,放到集群上去运行.主要配置工作如下: 1. 把集群环境中的 hive-core.xml, hdfs- ...
- 洛谷P2037 电话号码
P2037 电话号码 题目描述 一串由长长的数字组成的电话号码通常很难记忆.为了方便记忆,有种方法是用单词来方便记忆.例如用“Three Tens”来记忆电话3-10-10-10. 电话号码的标准形式 ...
- 关于unique去重
嗯.... unique这个东西也是一个冷门知识..... 但是在有时候它还是比较好用的东西... 下面就在详细代码中看unique是如何实际应用的....它主要是用于数组去重 #include< ...
- Git 通过https向码云推送项目
- Shape Number (最小表示法)
题目链接 一个字符串,这个字符串的首尾是连在一起的,要求寻找一个位置,以该位置为起点的字符串的字典序在所有的字符串中中最小. #include <bits/stdc++.h> using ...
- git 工作中常用命令(结合vscode学习git 命令)
作为一名前端开发,大家在工作中常常使用什么开发工具呢,我觉得我首选的是vscode,他配合git使用起来非常方便. 工作中常用三个命令: git终端常使用: git add . git commit ...
- 利用git reflog找回错误的重置
在开发中经常需要reset分支,如果在reset前没有记住分支指向的提交ID,想要重置回原来的提交恐怕大多数开发者是重新拉取远程版本库,再rebase分支.但如果连不上远程版本库或没有远程版本怎么办呢 ...
- BZOJ 4892 [Tjoi2017]dna 哈希+二分
自己简直是傻死了...对于位置想错了... 二分出来的是LCP长度$+1$,即每一次二分出来的最后一个点都是失配的,而就算失配也会跳过这个点:所以当$k<=3$且模式串$s2$的指针$>l ...
- 73th LeetCode Weekly Contest Domino and Tromino Tiling
We have two types of tiles: a 2x1 domino shape, and an "L" tromino shape. These shapes may ...
- new与malloc区别
1.new分配内存时会按照数据类型计算需要分配内存的大小,malloc分配内存时是按照指定的大小分配的:2.new不仅分配一段内存,而且会调用构造函数,malloc不会调用构造函数:之前看到过一个题说 ...