Oracle单组函数
--Upper -------把字符转换成大写
SELECT Upper ('abcde') FROM dual ;
--Lower ----- 把字符转换成小写
SELECT lower('ABCDE') FROM dual ;
--Initcap -----返回所有单词的首字母大写,其他字母小写
Select initcap(ename) from emp;
--Concat -----字符串连接 ,相当于||
Select concat('a','b') from dual;
Select 'a' || 'b' from dual;
--Substr -------查找字符串
Select substr('abcde',length('abcde')-2) from dual;
Select substr('abcde',-3,3) from dual;
substr(string,position,substring_length)
1、如果position=0, 则被当做1
2、如果position>1, 则从position位置开始找
3、如果position<1, 则从结尾开始找
4、如果第三个位置没有指定,则从指定位置到结尾
--Length ------字符串的长度
Select length(dname) from dept;
--Replace -----字符串替换
Select replace(ename,'a','A') from emp;
--Instr -- -----字符串查找,返回索引值
Select instr('Hello World','or') from dual; --8 indexof
--Lpad ------左侧填充
select lpad('Smith',10,'*') from dual--左侧填充 *****Smith
--Rpad ------右侧填充
select rpad('Smith',10,'*') from dual--右侧填充 Smith*****
--Trim -------过滤首位空格
select trim(' Mr Smith ') from dual --过滤首尾空格 Mr Smith
--数值函数
--Round -----四舍五入,取精度
select round(462,-2) from dual; ------负数往小数点前数 ----500
select round(412.313,2) from dual; -----正数往小数点后数 ----412.13
--Trunc -----不四舍五入,直接取最大值
select trunc(462.13,-2) from dual; ----400
--日期函数
--Months_between() -----两个时间之间隔了多少个月
select months_between(sysdate,hiredate) from emp;
--Add_months() ------在某个时间点上加一个月
select add_months(sysdate,1) from dual;
--Next_day()
select next_day(sysdate,'星期一') from dual; ----返回下一个星期一的日期
--Last_day
select last_day(sysdate) from dual; ----返回这个月的最后一天
--转换函数
--To_char
select to_char(sysdate,'yyyy') from dual; ---2011
select to_char(sysdate,'yyyy-mm-dd') from dual; ----2011-07-16
select to_char(sal,'L999,999,999') from emp; ----
select to_char(sysdate,'D') from dual; --返回星期 ----7
--To_number
select to_number('13')+to_number('14') from dual; ------27
--To_date
Select to_date('2009-02-10','yyyy-MM-dd') from dual; ----2009/2/10
select to_char('001') from dual; ----001
select to_number('003')from dual; -----3
--通用函数
--NVL()函数 -----有值返回本身,无值返回0
select nvl(comm,0) from emp;
--NULLIF()函数 ----如果表达式 exp1 与exp2 的值相等则返回 null,否则返回 exp1 的值
nullif(exp1,exp2)
--NVL2()函数
select empno, ename, sal, comm, nvl2(comm, sal+comm, sal) total from emp; ----如果comm不为null,返回sal+comm,否则返回comm
--COALESCE()函数 --依次考察各参数表达式,遇到非null值即停止并返 回该值。
select empno, ename, sal, comm, coalesce(sal+comm, sal, 0)总收入 from emp;
--CASE表达式
select empno, ename, sal,
case deptno
when 10 then '财务部'
when 20 then '研发部'
when 30 then '销售部'
else '未知部门'
end 部门
from emp;
--DECODE()函数 --和 case表达式类似,decode()函数也用于实现多路分支结构
select empno, ename, sal,
decode(deptno, 10, '财务部',
20, '研发部',
30, '销售部',
'未知部门')
部门
from emp;
case在SQL中有两种写法,先建立一个表
create table salgrade(grade int, sal int);
insert into salgrade values(1,1000);
insert into salgrade values(2,2000);
insert into salgrade values(3,3000);
第一种写法,简单写法:
select grade,sal,
case grade
when 1 then 'low'
when 2 then 'middle'
else 'high'
end
from salgrade;
第二种写法,查找写法:
SELECT grade,sal,
case when sal <=1000 then 'low'
when sal <=2000 then 'middle'
else 'high'
end
FROM salgrade;
decode只能代替第一种写法:
select grade,sal,decode(grade,1,'low',2,'middle','high') from salgrade;
--单行函数嵌套
select empno, lpad(initcap(trim(ename)),10,' ') name, job, sal from emp;
Oracle单组函数的更多相关文章
- oracle常用函数总结(二)
之前也有写过“oracle常用函数总结(一)”,为了尽量找全常见oracle函数,笔者特意查找了相关资料来作为参考,下边给大家罗列出来,部分和之前有重复的,希望能帮到大家! 列举了31个函数和1个分组 ...
- oracle add_months函数
oracle add_months函数 add_months 函数主要是对日期函数进行操作,举例子进行说明 add_months 有两个参数,第一个参数是日期,第二个参数是对日期进行加减的数字(以月为 ...
- Oracle to_date()函数的用法
Oracle to_date()函数的用法 to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习. 在Orac ...
- Oracle over函数
Oracle over函数 SQL code: sql over的作用及用法RANK ( ) OVER ( [query_partition_clause] order_by_clause )DE ...
- Oracle常用函数
前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...
- Oracle SQL函数
Oracle将函数大致分为单行函数,聚合函数和分析函数. 单行函数分为字符函数,日期函数,转换函数,数字函数,通用函数,decode函数 一.字符函数 1)大小写控制函数 01.Lower() 全部小 ...
- Oracle trunc()函数的用法
Oracle trunc()函数的用法 /**************日期********************/1.select trunc(sysdate) from dual --2013-0 ...
- oracle中函数和存储过程的区别和联系【转载竹沥半夏】
oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...
- 转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
关于处理小数点位数的几个oracle函数() 1. 取四舍五入的几位小数 select round(1.2345, 3) from dual; 结果:1.235 2. 保留两位小数,只舍 select ...
随机推荐
- Android 画布绘图
我们已经介绍了Canvas,在那里,已经学习了如何创建自己的View.在第7章中也使用了Canvas来为MapView标注覆盖. 画布(Canvas)是图形编程中一个很普通的概念,通常由三个基本的绘图 ...
- zabbix一件漂亮的外衣配置
http://www.cnblogs.com/yyhh/archive/2015/09/08/4792830.html
- C# MD5加密解密帮助类
/// <summary> /// MD5加密解密帮助类 /// </summary> public static class DESHelper { ...
- SQL Server优化50法
查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化 ...
- LINUX SSH显示中文乱码
ssh登陆后,执行: export LANG=zh_CN.gb2312就可以显示中文了.编辑/etc/sysconfig/i18n 将LANG="zh_CN.UTF-8" 改为 L ...
- Jsoup开发简单网站客户端之读取本地html文件
用jsoup解析网页,相比于那些返回api数据来说 肯定耗流量,加载慢,所以程序assts中预先放了一个最新的html文件,第一次进来不走网络,直接从本地取,以后会加上wifi离线功能. 首先离线网站 ...
- 详解C# 迭代器[转]
迭代器模式是设计模式中行为模式(behavioral pattern)的一个例子,他是一种简化对象间通讯的模式,也是一种非常容易理解和使用的模式.简单来说,迭代器模式使得你能够获取到序列中的所有元素 ...
- Linux第五次学习笔记
处理器体系结构 Y86指令集体系结构 定义一个指令集体系结构 ,包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. 程序员可见的状态 Y86程序中的每条指令都会读取或修改处理器状态 ...
- Struts2 面试题分析
1. 简述 Struts2 的工作流程: ①. 请求发送给 StrutsPrepareAndExecuteFilter ②. StrutsPrepareAndExecuteFilter 判定该请求是否 ...
- 闭包拾遗 & 垃圾回收机制
闭包拾遗 之前写了篇<闭包初窥>,谈了一些我对闭包的浅显认识,在前文基础上,补充并且更新些对于闭包的认识. 还是之前的那个经典的例子,来补充些经典的解释. function outerFn ...