--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单组函数的更多相关文章

  1. oracle常用函数总结(二)

    之前也有写过“oracle常用函数总结(一)”,为了尽量找全常见oracle函数,笔者特意查找了相关资料来作为参考,下边给大家罗列出来,部分和之前有重复的,希望能帮到大家! 列举了31个函数和1个分组 ...

  2. oracle add_months函数

    oracle add_months函数 add_months 函数主要是对日期函数进行操作,举例子进行说明 add_months 有两个参数,第一个参数是日期,第二个参数是对日期进行加减的数字(以月为 ...

  3. Oracle to_date()函数的用法

    Oracle to_date()函数的用法 to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习. 在Orac ...

  4. Oracle over函数

    Oracle over函数   SQL code: sql over的作用及用法RANK ( ) OVER ( [query_partition_clause] order_by_clause )DE ...

  5. Oracle常用函数

    前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...

  6. Oracle SQL函数

    Oracle将函数大致分为单行函数,聚合函数和分析函数. 单行函数分为字符函数,日期函数,转换函数,数字函数,通用函数,decode函数 一.字符函数 1)大小写控制函数 01.Lower() 全部小 ...

  7. Oracle trunc()函数的用法

    Oracle trunc()函数的用法 /**************日期********************/1.select trunc(sysdate) from dual --2013-0 ...

  8. oracle中函数和存储过程的区别和联系【转载竹沥半夏】

    oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...

  9. 转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数

    关于处理小数点位数的几个oracle函数() 1. 取四舍五入的几位小数 select round(1.2345, 3) from dual; 结果:1.235 2. 保留两位小数,只舍 select ...

随机推荐

  1. UVA 11983 Weird Advertisement --线段树求矩形问题

    题意:给出n个矩形,求矩形中被覆盖K次以上的面积的和. 解法:整体与求矩形面积并差不多,不过在更新pushup改变len的时候,要有一层循环,来更新tree[rt].len[i],其中tree[rt] ...

  2. mac和centos下git安装

    mac下面的git安装,这篇文章写的很详细了http://www.cnblogs.com/ccdev/archive/2012/09/12/2682098.html 谈谈centos下的安装.我用的是 ...

  3. [转]在Eclipse中使用JUnit4进行单元测试(高级篇)

    通过前2篇文章,您一定对JUnit有了一个基本的了解,下面我们来探讨一下JUnit4中一些高级特性. 一.高级Fixture 上一篇文章中我们介绍了两个Fixture标注,分别是@Before和@Af ...

  4. java12-6 冒泡排序法和选择排序法

    1.冒泡排序法 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处 分析: 第一次比较排序的结果:会把其中最大的数据排到最大的索引处 第二次比较排序后的结果:因为第一次已经把最大的一个 ...

  5. android窗口泄漏,isInEditMode解决可视化编辑器无法识别自定义控件的问题

    android窗口泄漏 在做项目是遇到这个错误:google:WindowManager: Activity has leaked window. 产 生原因:我们知道Android的每一个Activ ...

  6. 总结Gerrit常用命令

    查看分支列表,带有*的分支表示是当前所在分支[root@115~~]#git branch 查看分支详细情况 (推荐这种方式)[root@115~~]#git branch -av 创建分支(比如de ...

  7. PHP 运行方式(PHP SAPI介绍)

    SAPI:Server Application Programming Interface 服务器端应用编程端口.它就是PHP与其它应用交互的接口,PHP脚本要执行有很多种方式,通过Web服务器,或者 ...

  8. [QoS]cisco3560限速配置案例-收集于网工泡泡

    网络中常用到这些:CISCO和H3C-MAC过滤+端口限速+端口镜像+端口隔离 不同的方式不同的思想:嘎嘎 其他各个厂商的限速链接:http://pan.baidu.com/s/1hrIMoSG 密码 ...

  9. 一道c语言运算符优先级问题

    一道c语言运算符优先级问题 #include <iostream> using namespace std; int main() { char test[] = {"This ...

  10. JavaScript基础1

    JavaScript写在<script></script>之间   <script type="text/javascript">表示在< ...