日期:2014-05-16  浏览次数:20469 次

oracle 常用函数(转)
数值型函数

abs:求绝对值函数,如:abs(?5) 5

sqrt:求平方根函数,如:sqrt(2) 1.41421356

power:求幂函数,如:power(2,3) 8

cos:求余弦三角函数,如:cos(3.14159) ?1

mod:求除法余数,如:mod(1600, 300) 100

ceil:求大于等于某数的最小整数,如:ceil(2.35) 3

floor:求小于等于某数的最大整数,如:floor(2.35) 2

round:按指定精度对十进制数四舍五入,如:round(45.923, 1),结果,45.9

round(45.923, 0),结果,46

round(45.923, ?1),结果,50

trunc:按指定精度截断十进制数,如:trunc(45.923, 1),结果,45.9

trunc(45.923),结果,45

trunc(45.923, ?1),结果, 40



使用数值型函数练习。

使用求绝对值函数abs。

Sql 代码



   1. SELECT abs(?5) FROM dual; 



SELECT abs(?5) FROM dual;





执行结果:

  ABS(?5)

---------------

        5

说明:求?5的绝对值,结果为5。



字符型函数



ascii:获得字符的ASCII码,如:Ascii('A') 65

chr:返回与ASCII码相应的字符,如:Chr(65) A

lower:将字符串转换成小写,如:lower ('SQL Course') sql course

upper:将字符串转换成大写,如:upper('SQL Course') SQL COURSE

initcap:将字符串转换成每个单词以大写开头,如:initcap('SQL course') Sql Course

concat:连接两个字符串 concat('SQL', ' Course') SQL Course

substr:给出起始位置和长度,返回子字符串,如:substr('String',1,3) Str

length:求字符串的长度 length('Wellcom') 7

instr:给出起始位置和出现的次数,求子字符串在字符串中出现的位置,如:instr('String', 'r',1,1) 3

lpad:用字符填充字符串左侧到指定长度,如:lpad('Hi',10,'-') --------Hi

rpad:用字符填充字符串右侧到指定长度,如:rpad('Hi',10,'-') Hi--------

trim:在一个字符串中去除另一个字符串,如:trim('S' FROM 'SSMITH') MITH

replace:用一个字符串替换另一个字符串中的子字符串,如:replace('ABC', 'B', 'D') ADC



如果不知道表的字段内容是大写还是小写,可以转换后比较。

输入并执行查询:

Sql 代码



   1. SELECT  empno, ename, deptno    FROM emp 

   2.         WHERE  lower(ename) ='blake'; 



SELECT  empno, ename, deptno FROM emp

WHERE  lower(ename) ='blake';





结果为:

  

Sql代码



   1. EMPNO ENAME          DEPTNO 

   2.     --------------- ---------- ------------------------ 

   3.              7698 BLAKE              30 



EMPNO ENAME          DEPTNO

--------------- ---------- ------------------------

     7698 BLAKE              30





说明:该查询将表中的雇员名转换成小写,与小写的blake进行比较。



日期函数



months_between:返回两个日期间的

月份,如:months_between ('04-11月-05','11-1月-01'),结果,57.7741935

add_months:返回把月份数加到日期上的新日期,如:add_months('06-2月-03',1),结果,06-3月-03

add_months('06-2月-03',-1),结果,06-1月-03

next_day:返回指定日期后的星期对应的新日期,如:next_day('06-2月-03','星期一'),结果,10-2月-03

last_day:返回指定日期所在的月的最后一天,如:last_day('06-2月-03'),结果,28-2月-03

round:按指定格式对日期进行四舍五入,如:round(to_date('13-2月-03'),'YEAR'),结果,01-1月-03

round(to_date('13-2月-03'),'MONTH'),结果,01-2月-03

round(to_date('13-2月-03'),'DAY'),结果,16-2月-03



(按周四舍五入)

trunc:对日期按指定方式进行截断,如:trunc(to_date('06-2月-03'),'YEAR'),结果,01-1月-03

trunc(to_date('06-2月-03'),'MONTH'),结果,01-2月-03

trunc(to_date('06-2月-03'),'DAY'),结果,02-2月-03



(按周截断)



返回2003年2月的最后一天。

输入并执行查询:<