-
ORACLE
函数大全
SQL
中的单记录函数
1.
ASCII
返回与指定的字符对应的十进制数
;
SQL> select ascii('A') A,ascii('a')
a,ascii('0') zero,ascii(' ') space from dual;
A
A
ZERO
SPACE
--------- ---------
--------- ---------
65
97
48
32
2.
CHR
给出整数
,
返回对应的字符
;
SQL> select chr(54740) zhao,chr(65)
chr65 from dual;
ZH C
-- -
赵
A
3.
CONCAT
连接两个字符串
;
SQL>
select concat('010-','88888888')||'
转
23'
高乾竞电话
from dual;
高乾竞电话
----------------
转
23
4.
INITCAP
返回字符串并将字符串的第一个字母变为大写
;
SQL> select initcap('smith') upp from
dual;
UPP
-----
Smith
(C1,C2,I,J)
在一个字符串中搜索指定的字符
,
返回发现指定的字符的位置
;
C1
被搜索的字符串
C2
希望搜索的字符串
I
p>
搜索的开始位置
,
默认为
< br>1
J
出现的位置
,
默认为
1
SQL> select
instr('oracle traning','ra',1,2) instring from
dual;
INSTRING
---------
9
返回字符串的长度
;
SQL>
select name,length(name),addr,length(addr),sal,len
gth(to_char(sal)) from
_tst;
NAME
LENGTH(NAME) ADDR
LENGTH(ADDR)
SAL
LENGTH(TO_CHAR(SAL))
------
------------ ---------------- ------------
--------- --------------------
高乾竞
3
北京市海锭区
6
9999.99
7
返
回字符串
,
并将所有的字符小写
SQL> select lower('AaBbCcDd')AaBbCcDd
from dual;
AABBCCDD
--------
aabbccdd
返回字符串
p>
,
并将所有的字符大写
SQL> select upper('AaBbCcDd') upper
from dual;
UPPER
--------
AABBCCDD
和
LPAD(
粘贴字符
)
RPAD
在列的右边粘贴字符
LPAD
在列的左边粘贴字符
SQL> select
lpad(rpad('gao',10,'*'),17,'*')from dual;
LPAD(RPAD('GAO',1
-----------------
*******gao*******
不够字符则用
*
来填满
和
RTRIM
LTRIM
删除左边出现的字符串
RTRIM
删除右边出现的字符串
SQL> select ltrim(rtrim('
gao qian jing
',' '),' ')
from dual;
LTRIM(RTRIM('
-------------
gao qian jing
(string,start,count)
取子字符串
p>
,
从
start
开
始
,
取
count
个
SQL> select
substr('',3,8) from dual;
SUBSTR('
--------
08888888
E('string','s1','s2')
string
希望被替换的字符或变量
s1
被替换的字符串
s2
要替换的字符串
SQL> select replace('he love
you','he','i') from dual;
REPLACE('H
----------
i love you
X
返回一个与给定的字符串读音相同的字符串
SQL> create table table1(xm
varchar(8));
SQL> insert into table1
values('weather');
SQL> insert into
table1 values('wether');
SQL> insert
into table1 values('gao');
SQL> select
xm from table1 where
soundex(xm)=soundex('weather');
XM
--------
weather
wether
('s' from 'string')
LEADING
剪掉前面的字符
TRAILING
剪掉后面的字符
如果不指定
,
默认为空格符
SQL>
select
TRIM
(
's'
from
'string'
)
from
dual;
TRIM
p>
(
's'
from
'string'
)
tring
返回指定值的绝对值
SQL>
select abs(100),abs(-100) from dual;
ABS(100) ABS(-100)
--------- ---------
100
100
给出反余弦的值
SQL>
select acos(-1) from dual;
ACOS(-1)
---------
3.1415927
给出反正弦的值
SQL> select asin(0.5) from dual;
ASIN(0.5)
---------
.52359878
返回一个数字的反正切值
SQL>
select atan(1) from dual;
ATAN(1)
---------
.78539816
返回大于或等于给出数字的最小整数
SQL> select ceil(3.1415927) from dual;
CEIL(3.1415927)
---------------
4
返回一个给定数字的余弦
SQL>
select cos(-3.1415927) from dual;
COS(-3.1415927)
---------------
-1
返回一个数字反余弦值
SQL>
select cosh(20) from dual;
COSH(20)
---------
242582598
返回一个数字
e
的
n
次方根
SQL> select exp(2),exp(1) from dual;
EXP(2)
EXP(1)
--------- ---------
7.3890561 2.7182818
对给定的数字取整数
SQL>
select floor(2345.67) from dual;
FLOOR(2345.67)
--------------
2345
返回一个数字的对数值
SQL>
select ln(1),ln(2),ln(2.7182818) from dual;
LN(1)
LN(2) LN(2.7182818)
--------- --------- -------------
0 .69314718
.99999999
(n1,n2)
返回一个以
n1
为底
n2
的对数
p>
SQL> select
log(2,1),log(2,4) from dual;
LOG(2,1)
LOG(2,4)
--------- ---------
0
2
(n1,n2)
返回一个
n1
除以
n2
的余数
SQL> select
mod(10,3),mod(3,3),mod(2,3) from dual;
MOD(10,3)
MOD(3,3)
MOD(2,3)
--------- ---------
---------
1
0
2
返回
n1
的
n2
次方根
SQL> select
power(2,10),power(3,3) from dual;
POWER(2,10) POWER(3,3)
----------- ----------
1024
27
和
TRUNC
按照指定的精度进行舍入
SQL>
select
round(55.5),round(-55.4),trunc(55.5),trunc(-55.5)
from dual;
ROUND(55.5) ROUND(-55.4)
TRUNC(55.5) TRUNC(-55.5)
-----------
------------ ----------- ------------
56
-55
55
-55
取数字
n
的符号
,
大于
0
返回
1,
小于
0
返回
-1,
等于
0
返回
0
SQL> select
sign(123),sign(-100),sign(0) from dual;
SIGN(123) SIGN(-100)
SIGN(0)
--------- ----------
---------
1
-1
0
返回一个数字的正弦值
SQL>
select sin(1.57079) from dual;
SIN(1.57079)
------------
1
返回双曲正弦的值
SQL>
select sin(20),sinh(20) from dual;
SIN(20)
SINH(20)
--------- ---------
.91294525 242582598
返回数字
n
的根
SQL> select sqrt(64),sqrt(10) from
dual;
SQRT(64)
SQRT(10)
--------- ---------
8 3.1622777
返回数字的正切值
SQL>
select tan(20),tan(10) from dual;
TAN(20)
TAN(10)
--------- ---------
2.2371609 .64836083
返回数字
n
的双曲正切值
SQL> select tanh(20),tan(20) from dual;
TANH(20)
TAN(20)
--------- ---------
1 2.2371609
按照指定的精度截取一个数
SQL>
select trunc(124.1666,-2)
trunc1,trunc(124.16666,2) from dual;
TRUNC1 TRUNC(124.16666,2)
--------- ------------------
100
124.16
_MONTHS
增加或减去月份
SQL>
select to_char(add_months(to_date('199912','yyyymm
'),2),'yyyymm') from
dual;
TO_CHA
------
200002
SQL> select to_char(a
dd_months(to_date('199912','yyyymm'),-2),'yyyymm')
from dual;
TO_CHA
------
199910
_DAY
返回日期的最后一天
SQL> select
to_char(sysdate,''),to_char((sysdate)+1,'')
from dual;
TO_CHAR(SY
TO_CHAR((S
---------- ----------
2004.05.09 2004.05.10
SQL>
select last_day(sysdate) from dual;
LAST_DAY(S
----------
31-5
月
-04
_BETWEEN(date2,date1)
p>
给出
date2-date1
的月份
SQL> select months_between('19
-12
月
-1999','19-3
月
-1999') mon_between from
dual;
MON_BETWEEN
-----------
9
SQL>selectmonths_between(t
o_date('2000.05.20',''),to_date('2005.
0
5.20','')) mon_betw from dual;
MON_BETW
---------
-60
_TIME(date,'this','that')
给出
在
this
时区
=other
时区的日期和时间
SQL> select
to_char(sysdate,' hh24:mi:ss')
bj_time,to_char(new_time
2
(sysdate,'PDT','GMT'),'
hh24:mi:ss') los_angles from dual;
BJ_TIME
LOS_ANGLES
------------------- -------------------
2004.05.09 11:05:32 2004.05.09 18:05:32
_DAY(date,'day')
给出日期
date
和星期
x
之后计算下
一个星期的日期
SQL> select next_day
('18-5
月
-2001','
星期
五
') next_day from dual;
NEXT_DAY
----------
25-5
月
-01
E
用来得到系统的当前日期
SQL>
select to_char(sysdate,'dd-mm-yyyy day') from
dual;
TO_CHAR(SYSDATE,'
-----------------
09-05-2004
星期日
trunc(date,fm
t)
按照给出的要求将日期截断
,
如果
fmt='mi'
表示保留分
,
截断秒
SQL> select
to_char(trunc(sysdate,'hh'),' hh24:mi:ss') hh,
2
to_char(trunc(sysdate,'mi'),'
hh24:mi:ss') hhmm from dual;
HH
HHMM
-------------------
-------------------
2004.05.09 11:00:00
2004.05.09 11:17:00
ROWID
将字符数据类型转换为
ROWID
类型
SQL> select
rowid,rowidtochar(rowid),ename from
ROWID
ROWIDTOCHAR(ROWID) ENAME
------------------ ------------------
----------
AAAAfKAACAAAAEqAAA
AAAAfKAACAAAAEqAAA SMITH
AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB
ALLEN
AAAAfKAACAAAAEqAAC
AAAAfKAACAAAAEqAAC WARD
AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD
JONES
T(c,dset,sset)
将源字符串
sset
从一个语言字符集转换到另一个目的
dset
字符集<
/p>
SQL> select
convert('strutz','we8hp','f7dec')
conver
------
strutz
AW
将一个十六进制构成的字符串转换为二进制
EXT
将一个二进制构成的字符串转换为十六进制
OCHAR
将
< br>ROWID
数据类型转换为字符类型
_CHAR(date,'format')
SQL> select to_char(sysdate,'yyyy/mm/dd
hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2004/05/09 21:14:41
_DATE(string,'format')
将字符串转
化为
ORACLE
中的一个日期
_MULTI_BYTE
将字符串中的单字节字符转化为多字节字符
SQL>
select
to_multi_byte('
高
') from
dual;
TO
--
高
_NUMBER
将给出的字符转换为数字
SQL>
select to_number('1999') year from dual;
YEAR
---------
1999
-
-
-
-
-
-
-
-
-
上一篇:Up At The Villa BR
下一篇:高考英语情景交际经典习题(含答案)