`

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分析函数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