--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单组函数、分组函数

    文章目录 1.函数基础 1.1SQL函数 1.2两种SQL函数 2.单行函数 2.1说明 2.2字符函数 2.2.1大小写控制函数 2.2.2字符控制函数 2.3数字函数 2.4日期 2.4.1日期的 ...

  2. Oracle常用函数总结

    文章目录 Oracle常用函数 1. 时间及日期处理函数 1.1 时间格式表示方法 1.2 日期和字符串之间的转换 1.3 时间及日期的计算方法 1.4 日期常见问题处理 2. 字符串函数及数字截取函 ...

  3. Oracle round函数是什么意思?怎么运用?

    如何使用 Oracle Round 函数 (四舍五入) 描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果. SELECT ROUND( number, [ decimal_p ...

  4. oracle 四分位函数,Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

    Oracle 分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据 ORDER BY 子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内 ...

  5. oracle+cast函数+长度,oracle cast() 函数问题

    oracle cast() 函数问题 关键字: oracle cast() 函数问题 SQL> create table t1(a varchar(10)); Table created. SQ ...

  6. Oracle trunc()函数的用法

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

  7. oracle显示当天日期函数,oracle日期函数

    oracle日期函数 1.日期时间间隔操作  当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual 当 ...

  8. ORACLE时间函数(SYSDATE)深入理解

    ORACLE时间函数(SYSDATE)深入理解 加法  select sysdate,add_months(sysdate,12) from dual; --加1年  select sysdate,a ...

  9. 十、oracle 常用函数

    一.字符函数 字符函数是oracle中最常用的函数,我们来看看有哪些字符函数: lower(char):将字符串转化为小写的格式. upper(char):将字符串转化为大写的格式. length(c ...

最新文章

  1. 图灵奖得主高德纳与 LaTex 有啥关系?90%的人都不知道
  2. C#操作Access数据库中遇到的问题(待续)
  3. Linux初级运维(十七)——Linux内核编译与系统裁减
  4. Android开发笔记(五十六)摄像头拍照
  5. 师大校园网迅雷解封软件 之 配置QQ旋风2
  6. js 判断多个一样的name
  7. Pytorch基本操作
  8. 全数字FM接收机 --(1)结构
  9. 转 利用java反射实现两个具有相同属性bean赋值
  10. 简述delete与delete[]的区别
  11. ELK安装( Elasticsearch、Logstash、Kibana)
  12. 传奇服务器常见的网络攻击方式有哪些?-版本被攻击
  13. 账户经常被盗号怎么办?防盗“黑科技”了解一下
  14. 苹果电池显示维修_苹果财大气粗:维修换电池?直接给你换个机
  15. SpringBoot-Mongodb双数据源配置
  16. 修改C盘用户的中文名为英文名
  17. Java设计模式之《装饰器模式》及应用场景
  18. PotPlayer 和 VLC 播放器的书签
  19. 在SQLserver中如何获得两个日期相减的天数?
  20. 无锡人称包子为馒头,跟宋朝有关?

热门文章

  1. vscode无法打开源文件iostream_C++的iostream标准库介绍(1)
  2. linux关机_3.5 开关机命令及7个运行级别《LINUX-centos7-操作系统入门到精通》
  3. Android vlc 分析视频,VLC-Android 对视频流(RTSP)做翻转、旋转
  4. spark 读取多个路径_spark
  5. java 文件名 类名_java文件名为什么要与类名相同
  6. redis的hyperloglog用法
  7. php 函数漏洞,PHP绕过禁用函数漏洞的原理与利用分析
  8. matlab分析电池特性,基于Matlab_Simulink的光伏电池特性仿真研究
  9. Spring 依赖注入Dependency Injection
  10. AudioParam