oracle中基本函数

  • 格式:doc
  • 大小:26.50 KB
  • 文档页数:7

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

返回指定一字符串在另一字符串中最先显现的位置。在字符串string1中,从start开始找string2,省略start时从string1头开始找。找不到时,函数值为0。 INSTR(char1,char2,start,times):在char1字符串中搜索char2字符串,start为执行搜索的起始位置,times为搜索次数。

InStr([start, ]string1, string2[, compare])

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

Trim ( string )

参数string:string类型,指定要删除首部和尾部空格的字符串返回值String。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。假如任何参数的值为NULL,Trim()函数返回NULL。

select trim(' Mr Smith ') from dual 结果:Mr Smith

ltrim() 函数从字符串左侧删除空格或其他预定义字符。

Rtrim() 函数从字符串右侧删除空格或其他预定义字符。

(二)数值函数

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

TO_DATE格式(以时刻:2007-11-02 13:45:25为例)

Year:

yy two digits 两位年 显示值:07

yyy three digits 三位年 显示值:007

yyyy four digits 四位年 显示值:2007

Month:

mm number 两位月 显示值:11

mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov

month spelled out 字符集表示 显示值:11月,若是英文版,显示

november

Day:

dd number 当月第几天 显示值:02

ddd number 当年第几天 显示值:02

dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri

day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday

ddspth spelled out, ordinal twelfth

Hour:

hh two digits 12小时进制 显示值:01

hh24 two digits 24小时进制 显示值:13

Minute:

mi two digits 60进制 显示值:45

Second:

ss two digits 60进制 显示值:25

其它

Q digit 季度 显示值:4

WW digit 当年第几周 显示值:44

W digit 当月第几周 显示值:1

24小时格式下时刻范畴为: 0:00:00 - 23:59:59....

12小时格式下时刻范畴为: 1:00:00 - 12:59:59 ....

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; 结果:未知部门