`

Oracle基本函数总结

阅读更多
(一)字符函数

  Upper

  
SELECT Upper ('abcde') FROM dual  
结果:ABCDE

  Lower

  
SELECT lower('ABCDE') FROM dual 
结果:abcde

  Initcap

  
SELECT Initcap ('AAA') FROM dual 
结果:Aaa

  
SELECT Initcap ('aaa') FROM dual 
结果:Aaa

  Concat

  
SELECT Concat ('a', 'b') FROM dual 
结果:ab

  
Select 'a' || 'b' from dual 
结果:ab

  Substr

  
Select substr('abcde',0,3) from dual 
结果:abc

  
Select substr('abcde',-2,3) from dual 
结果:de

  第二个参数为字符串的第几位,默认从0开始。当为负数时,是从右侧开始。第三个参数为要取得字符串的总长度。

  Length

  
Select length('abcde') from dual 
结果:5

  Replace

  
Select replace('abcde','a','A') from dual 
结果:Abcde

  Instr

  
Select instr('Hello World','W') from dual 
结果:8

  
Select instr('Hello World','w') from dual 
结果:0

  如果在第一个参数中存在第二个参数,则返回第一个遇到的匹配参数的位置,该方法区分大小写。

  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(412,-2) from dual;
  结果:400

  
select round(412.713) from dual;
结果:413

  
select round(412,2) from dual;
结果:412

  
select round(412.713,2) from dual;
结果:412.71

  取整运算,第二个参数指定了取小数点后的几位,如果是5则进一。

  Mod

  
select Mod(198,2) from dual 
结果:0

  Trunc

  
select trunc(412.13,-2) from dual  
结果:400

  
select trunc(412.13,2) from dual   
结果:412.13

  
select trunc(412.13,1) from dual   
结果:412.1

  
select trunc(412.53) from dual     
结果:412

  取整运算,第二个参数指定了取小数点后的几位,不进位。

  (三)日期函数

  Months_between

  
select months_between(sysdate+35,sysdate) from dual

  结果:1.16129032258065

  用第一个参数的时间减去第二个参数的时间,得到月份的差。

  Add_months

  
select add_months(sysdate,1) from dual

  当前月份加了一个月

  interval

  
select   sysdate   +   interval   '3 '   year   from   dual

  当前日期加了三年

  
select   sysdate   +   interval   '3-2 '   year   to   month   from   dual


  当前日期加了三年两个月

  
select   sysdate   +   interval   '10   2:10 '   day   to   minute   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-MM-dd') from dual; 
结果:2010-10-30

  To_number

  
select to_number('13')+to_number('14') from dual;
结果:27

  To_date

  
Select to_date('2012-1-1','yyyy-MM-dd') from dual;
结果:2012-1-1

  (五)通用函数

  NVL

  
select nvl('string',0) from dual 
结果:string

  
select nvl('',0) from dual 
结果:0

  NullIF

  
select nullif('abc','abc') from dual 
结果:空

  
select nullif('abc','abcd') from dual 
结果:’abc

  NVL2

  
select nvl2('a','b','c') from dual 
结果:b

  
select nvl2('','b','c') from dual 
结果:c

  如果第一个参数不为空,则返回第二个参数;否则,返回第三个参数

  Coalesce

  
select COALESCE('','','abc','') from dual 
结果:abc

  
select COALESCE('','','','') from dual     
结果:空

  依次考察各个参数,如有非空则停止并返回该值。

  Case表达式

  
select case 4

  when 10 then

  '财务部'

  when 20 then

  '研发部'

  when 30 then

  '销售部'

  else

  '未知部门'

  end 部门

  from dual


  结果:未知部门

  Decode表达式

  
select decode(10, 10, '财务部', 20, '研发部', 30, '销售部', '未知部门') 部门

  from dual;
结果:财务部

  
select decode(2,10,'财务部',decode(3,20,'研发部',decode(4,30,'销售部','未知部门'))) from dual; 
结果:未知部门

  第一个参数是否等于第二个参数,如果等于,则返回第三个参数,否则返回第四个参数,可用于行转列。
引自:http://oracle.chinaitlab.com/induction/832352.html


日期型函数
sysdate     当前日期和时间
select sysdate from dual;

last_day  本月最后一天   
select last_day(sysdate) from dual;

add_months(d,n) 当前日期d后推n个月
select add_months(sysdate,2) from dual;

months_between(d,n) 日期d和n相差月数
select months_between(sysdate,to_date('20020812','YYYYMMDD')) from dual;

next_day(d,day) d后第一周指定day的日期 select next_day(sysdate,'Monday') from dual;
day 格式  有  'Monday' 星期一 
         'Tuesday' 星期二
                  'wednesday'  星期三
                  'Thursday' 星期四
                  'Friday' 星期五
                  'Saturday' 星期六
         'Sunday' 星期日



特殊格式的日期型函数
Y或YY或YYY     年的最后一位,两位,三位   
select to_char(sysdate,'YYY') from dual;

Q              季度,1-3月为第一季度    
select to_char(sysdate,'Q') from dual;

MM             月份数           
select to_char(sysdate,'MM') from dual;

RM             月份的罗马表示             
select to_char(sysdate,'RM') from dual; 
IV
month          用9个字符表示的月份名      
select to_char(sysdate,'month') from dual;
ww             当年第几周         
select to_char(sysdate,'ww') from dual;

w              本月第几周         
select to_char(sysdate,'w') from dual;

DDD            当年第几天,一月一日为001 ,二月一日032
select to_char(sysdate,'DDD') from dual;

DD             当月第几天                 
select to_char(sysdate,'DD') from dual;

D              周内第几天                 
select to_char(sysdate,'D') from dual; 
如 sunday
DY             周内第几天缩写       
select to_char(sysdate,'DY') from dual; 
如 sun
hh12           12小时制小时数       
select to_char(sysdate,'hh12') from dual;

hh24           24小时制小时数       
select to_char(sysdate,'hh24') from dual;

Mi            分钟数           
select to_char(sysdate,'Mi') from dual;

ss            秒数            
select to_char(sysdate,'ss') from dual;

select to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') from dual;

引自:http://hi.baidu.com/zmc149158339/blog/item/9953e3ecc542a54978f055b2.html
分享到:
评论

相关推荐

    oracle自定义函数总结

    ### Oracle 自定义函数详解 #### 一、概述 在Oracle数据库中,自定义函数是一种非常实用的功能,可以让我们根据特定需求编写SQL代码块,并将这些代码块封装为可重用的函数。通过这种方式,不仅可以提高代码的复用...

    ORACLE分析函数教程

    #### 二、Oracle分析函数的基本结构 分析函数的基本结构如下: ```sql FUNCTION_NAME(,) OVER (<Partition-Clause><Order-by-Clause>) ``` - **FUNCTION_NAME**: 分析函数名称。 - ****: 函数参数,可以是表达式...

    Oracle常用函数实战总结.xlsx、Oracle 11g数据库管理员指南.pdf、Oracle开发实战经典.pdf

    Oracle常用函数实战总结.xlsx: 1.内容:总结了Oracle数据库中常用的函数及其实战应用。这些函数可能包括字符串处理函数、数值计算函数、日期和时间函数、转换函数等。 2.用途:对于Oracle数据库的使用者来说,这...

    oracle开窗函数学习技巧总结

    ### Oracle开窗函数学习技巧总结 #### 一、概述 在Oracle数据库中,开窗函数是一种非常强大的功能,它能够帮助我们对数据进行更复杂的分析和处理。开窗函数允许我们在查询结果集的一个窗口内执行聚合操作,而无需对...

    Oracle分析函数基本概念和语法总结及Regexp_***用法

    Oracle分析函数是数据库管理系统Oracle中的一种高级查询工具,它们用于处理行集,计算基于特定窗口内的数据的聚合值。分析函数的主要特点是返回的结果不仅仅是一行,而是多行,这与传统的聚合函数(如SUM, AVG等)...

    Oracle中的分析函数详解

    二、分析函数的基本结构 分析函数的语法结构通常如下: ```sql FUNCTION_NAME([PARTITION BY column_list] [ORDER BY column_list]) OVER ( [RANGE | ROWS BETWEEN start AND end] ) AS alias ``` - `FUNCTION_...

    oracle分析函数及开窗函数

    通过本文的学习,我们了解了Oracle中的分析函数及其基本用法,包括常见的分析函数分类、基本语法以及实际应用场景。这些函数的强大之处在于它们能够轻松地处理复杂的数据计算需求,为数据分析提供了极大的便利。掌握...

    oracle分析函数参考手册

    ### Oracle分析函数详解 #### 一、概述 Oracle分析函数是一种强大的工具,它允许用户对分组数据执行复杂的计算,并且能够返回多个结果行。这与传统的聚合函数(如`SUM`、`COUNT`等)形成鲜明对比,后者通常只针对...

    14.Oracle自定义函数1

    总结来说,Oracle 自定义函数提供了一种扩展数据库功能的方式,但在实际使用时需要根据具体场景权衡其优缺点。尽管在某些特定情况下的确能解决问题,但开发者应谨慎考虑是否采用,尤其是在性能和可维护性方面有较高...

    Oracle分析函数

    #### 二、基本函数介绍 ##### 1. **累积聚合函数** - **SUM**: 计算指定表达式的总和。 - **MIN** 和 **MAX**: 查找表达式的最小值和最大值。 - **AVG**: 计算表达式的平均值。 - **COUNT**: 对符合条件的行...

    Oracle常用函数.pdf

    数字函数用于对数值型数据进行数学计算,包括基本的数学运算以及更复杂的数学函数。 - **ABS**: 取绝对值。 - 示例:`ABS(-15)` 返回 `15` - **CEIL**: 向上取整。 - 示例:`CEIL(44.778)` 返回 `45` - **FLOOR**...

    oracle时间函数

    ### Oracle时间函数详解 在Oracle数据库中,时间函数是一组非常重要的工具,它们可以帮助我们处理日期和时间数据,实现各种日期计算的需求...理解并掌握这些基本的时间函数对于Oracle数据库的高效管理和使用至关重要。

    oracle最全函数大全

    分析函数的基本语法如下: ```sql FUNCTION_NAME(<参数>,...) OVER (表达式,...>表达式 | DESC>| NULLS LAST>子句>) ``` - **PARTITION BY**子句:将数据分成多个分区,在每个分区内独立计算函数。 - **ORDER BY**...

    ORACLE OLAP函数语法的总结

    本文将详细介绍Oracle OLAP函数的基本语法结构及其各个组成部分,并通过具体示例来解释不同类型的函数如何工作。 #### 二、OLAP函数基本语法 OLAP函数通常由以下四个部分组成: 1. **Function Name**:这是实际...

    oracle 函数大全整理

    总结来说,NVL函数在Oracle中是处理NULL值的重要工具,而GROUP BY子句则允许我们在查询时对数据进行分类和聚合,以获取更详细的信息。这两个概念在日常的数据库管理和数据分析工作中都是非常关键的。理解并熟练运用...

    Oracle_详解分析函数

    ### Oracle分析函数详解 #### 一、Oracle分析函数概述 Oracle分析函数是在处理大量...理解这些函数的基本原理及其应用场景对于提高数据处理效率至关重要。希望本文能够帮助您更好地掌握Oracle分析函数的使用方法。

    oracle分析函数over_及开窗函数.txt

    ### Oracle分析函数OVER及开窗函数详解 #### 一、概述 在Oracle数据库中,分析函数(Analytic Functions)是一种非常强大的工具,用于处理复杂的查询需求。这些函数可以在一组相关的行上执行计算,并且每行返回一个...

    oracle第4章 单行函数

    ### Oracle 第四章 单行函数 #### 一、引言 在Oracle数据库的学习过程中,了解并掌握单行函数是非常重要的一步。单行函数是指针对每一行的数据进行处理,并返回一个处理结果的函数。这类函数在查询语句中非常常见,...

    oracle 分析函数

    Oracle分析函数的基本语法结构如下: ```sql FUNCTION_NAME(,) OVER (<Partition-Clause><Order-by-Clause>) ``` 其中: - `FUNCTION_NAME`:表示具体的分析函数名称,如`SUM`、`COUNT`、`AVG`等。 - `<argument>...

Global site tag (gtag.js) - Google Analytics