`
dushanggaolou
  • 浏览: 173015 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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 提供了一个名为 ODCIAggregate 的接口,用户可以通过实现这个接口来创建自己的聚合函数。 实现 ODCIAggregate 接口的关键是...

    ORACLE单行函数和组函数

    ### ORACLE单行函数和组函数详解 #### 一、概述 在Oracle数据库中,函数是一种重要的编程元素,用于执行特定任务并返回结果。根据其处理数据的方式不同,可以将Oracle函数大致分为两类:单行函数和组函数(也称聚合...

    Oracle中的分析函数详解

    与聚合函数(如SUM, AVG, COUNT等)不同,分析函数可以在每个行级别上返回结果,而不只是返回整个组的单一值。 二、分析函数的基本结构 分析函数的语法结构通常如下: ```sql FUNCTION_NAME([PARTITION BY column...

    oracle开窗函数学习技巧总结

    2. **分布函数**:如`NTILE()`,用于将行划分为指定数量的组。 3. **聚合函数**:如`SUM()`、`AVG()`等,它们在窗口范围内进行计算。 4. **偏移量函数**:例如`LAG()`和`LEAD()`,用于访问前一行或后一行的数据。 #...

    Oracle的XML函数

    Oracle XML 函数 Oracle 中的 XML 函数是指在 Oracle 数据库中用于处理 XML 数据的函数。这些函数可以用于 SELECT 语句,也可以用于 UPDATE 和 WHERE 语句。学习这些函数可以使得保存的数据更加具有可读性。 ...

    ORACLE字符串函数

    ORACLE 字符串函数是一组用于操作和处理字符串的函数,包括连接、截取、转换、查找、替换、去除空白等操作。 1. 字符串连接函数:`string || string` 该函数用于连接两个字符串,结果是一个新的字符串。例如,`'...

    Oracle内建函数大全

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数库是其核心优势之一。本文将深入探讨Oracle内建函数,旨在帮助用户更好地理解和利用这些功能来优化数据库操作。 1. **数学函数** -...

    oracle 9i 分析函数参考手册.rar

    Oracle 9i 分析函数是数据库查询中一种强大的工具,它们允许在单个查询中对一组行进行聚合操作,同时保留原始行的细节。在Oracle数据库系统中,分析函数为数据分析师和数据库管理员提供了深入洞察数据的能力,尤其在...

    Oracle_PL(SQL)单行函数和组函数及使用

    ### Oracle_PL(SQL)单行函数和组函数及使用 #### 一、概述 在Oracle数据库中,SQL 和 PL/SQL 提供了大量的内置函数,这些函数可以极大地提高开发效率和简化查询逻辑。根据处理数据的不同方式,这些函数可以分为...

    ORACLE常用分析函数说明

    Oracle 分析函数从 8.1.6 版本开始提供,是一种计算基于组的聚合值的函数。它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数是分析函数工作的数据窗口大小,这个数据窗口...

    oracle 10G函数大全(中文)

    Oracle 10G函数大全是Oracle数据库在10g版本中的一个重要参考资料,它包含了大量用于数据处理、查询优化以及数据库管理的内置函数。这个中文帮助文档是开发者和DBA们在进行Oracle数据库操作时的重要工具,它能提供...

    Oracle10G函数大全(chm格式的,比较全面)

    Oracle 10G是Oracle数据库的一个重要版本,它包含了丰富的函数和特性,为数据库管理和开发提供了强大的支持。本文将深入探讨Oracle 10G中的一些关键函数,旨在帮助你更好地理解和利用这些工具。 1. **数学函数**: ...

    oracle最全函数大全

    ### Oracle 最全函数大全 #### 一、总体介绍 Oracle 数据库提供了丰富的内置函数来处理各种数据需求。这些函数可以大致分为以下几类:分析函数、聚合函数、转换函数、日期型函数、字符型函数、数值型函数以及其他...

    【Oracle】LISTAGG函数的使用.pdf

    Oracle LISTAGG 函数的使用 Oracle LISTAGG 函数是 Oracle 11.2 中引入的一种新特性,主要功能类似于 wmsys.wm_concat 函数,即将数据分组后,把指定列的数据再通过指定符号合并。LISTAGG 函数有两个参数:要合并的...

    Oracle_分析函数

    Oracle分析函数是Oracle数据库提供的一个高级SQL特性,它允许在查询结果集中进行复杂的数据分析。分析函数通过使用OVER子句,可以对数据进行分区、排序以及定义窗口大小等功能。它们在数据仓库、报告和在线事务处理...

    oracle总结,PLSQL单行函数和组函数详解

    总的来说,理解并熟练运用Oracle的单行函数和组函数对于数据库管理和开发至关重要。通过这些函数,我们可以更有效地处理数据,创建复杂的查询,优化性能,以及构建复杂的业务逻辑。不断学习和实践,将有助于提高你在...

    oracle函数大全(分类成9个word文档)

    3. "oracle函数介绍(3) 著名函数之聚合函数.doc":聚合函数用于对一组值进行操作并返回一个单一的汇总值。SUM()、AVG()、MAX()和MIN()是最常见的例子,它们分别用于求和、计算平均值、找出最大值和最小值。 4. ...

    ORACLE常用函数功能及演示

    ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码...

    oracle 10G函数大全

    本资料“Oracle 10G函数大全”显然是一份全面的参考指南,涵盖了Oracle 10G中的主要函数,包括数学函数、字符串函数、日期时间函数、系统信息函数等。 1. **数学函数**: - ABS:返回一个数的绝对值。 - CEIL:...

    Oracle分析函数

    ### Oracle分析函数详解 #### 一、概述 Oracle分析函数是一种强大的工具,它允许用户对查询结果进行复杂的分析处理,而无需多次查询数据库或编写复杂的程序逻辑。这大大简化了开发人员的工作,尤其是在处理大数据...

Global site tag (gtag.js) - Google Analytics