oracle常用函数(1),oracle函数
1、返回与指定的字符对应的十进制数
select ascii('A') A,ascii('z') a,ascii('12') 一打,ascii(' ') kg from dual;
2、返回与指定十进制对应的字符
select chr(65) A,chr(122) z from dual;
3、连接两个字符串
select concat('熊大','熊二') constr from dual;--熊大熊二
4、将第一个字符变大写并返回字符串
select initcap('boat') upperfirst from dual;--Boat
5、将所有字符变成大写并返回字符串
select upper('boat') upperall from dual t;--BOAT
6、将所有字符变成小写并返回字符串
select lower('BoaT') lowerall from dual;--boat
7、INSTR(str1, str2, a,b)函数
用法:得到在str1中包含str2的位置。
从左边开始检查,开始的位置为a,如果a是一个负数,那么是从右边开始进行扫描的,第b次出现的位置将被返回。
a和b都缺省设置为1,这将会返回在str1中第一次出现str2的位置
select instr('zheshigeceshi','sh',-2,1) str from dual;--11
select instr('zheshigeceshi','sh',1,2) str from dual;--11
8、获取字符串长度
select length('boat') len from dual;--4
9、lpad(str,n,[pad_string])函数
参数str:可以是字符或者参数
参数n:是返回的字符串的长度,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;
参数pad_string:是个可选参数,这个字符串是要粘贴到string的左边的字符串,如果这个参数未写,lpad函数将会在string的左边粘贴空格。
select rpad('boat',10,'*') from dual t;--boat******
select lpad('boat',10,'*') from dual t;--******boat
10、ltrim(x,y) 函数
用法:按照y中的字符一个一个截掉x中的字符,并且是从左边开始执行的
只要遇到y中有的字符, x中的字符都会被截掉,直到在x的字符中遇到y中没有的字符为止函数命令才结束,rtrim(y,x)同理
select ltrim('boat','bo') from dual;--at
select ltrim('booooobbbbobat','bo') from dual t;--at
select rtrim('boat','at') from dual;--bo
select rtrim('boaaaaaaaaatttttttaat','at') from dual;--bo
11、substr(string str, int a, int b)函数
参数1:str 要处理的字符串
参数2:a 截取字符串的开始位置(起始位置是0),为负值时表示从尾部开始算起
参数3:b 截取的字符串的长度,如果b超出要处理的字符串的长度,并不会影响返回结果,系统按要处理字符串最大长度返回
如果不用b,则取从a开始的剩余所有字符串
select substr('boatisgood',3,100) subs from dual;--atisgood
select substr('boatisgood',3) subs from dual;--atisgood
select substr('boatisgood',-3) subs from dual;--ood
12、替换函数
select replace('nba hupu 步行街怎么没有了','步行街','BXJ') from dual;--nba hupu BXJ怎么没有了
ABS(x) 函数,此函数用来返回一个数的绝对值。
ACOS(x)函数,返回X的反余弦值。X范围从1到-1,输入值从0到派,以弧度为单位。
ASIN(x)函数,返回X的反正弦值。X范围从1到-1,输入值从-PI/2到PI/2,以弧度为单位。
ATAN(x)函数,返回X的反正切值。输入值从-PI/2到PI/2,以弧度为单位。
BITAND(x,y)函数,返回X和Y的与结果。X和Y必须为非负整数。注意没有BITOR函数,但是在UTL_RAW包中有用 于RAW值的位操作符。
CEIL(x)函数,用来返回大于或等于X的最小整数。
COS(x)函数,返回x的余弦值。x是以弧度表示的角度。
COSH(x)函数,返回X的双曲余弦。
EXP(x)函数,与power(x,y)函数类似,不过不用指明基数,返回E的X次幂。E=2.71828183...
FLOOR(x)函数,用来返回小于或等于X的最大整数。
LN(x)函数,返回x的自然对数。x必须大于0。
LOG(x,y)函数,返回以X为底Y的对数。底必须是不为0和1的正数,Y是任意正数。
MOD(被除数,除数)求余函数,如果除数为0,则返回被除数。
POWER(x,y)函数,返回X的Y次幂。底X和指数Y都不必是正整数,但如果X是负数的话,Y必须是整数。
ROUND(x[,y])函数,返回舍入到小数点右边Y位的X值。Y缺省为0,这将X舍入为最接近的整数。如果Y是负数, 那么舍入到小数点左边相应的位上,Y必须为整数。
SIGN(x)函数,此函数用来返回一个数的正负值,若为一个正数则返回1,若为一个负数则返回-1,
若为0则仍返回0,有点像把模拟量数字化的意思。
SIN(x)函数,返回X的正弦。x是以弧度表示的角度。
SINH(x)函数,返回x的双曲正弦。
SQRT(x)函数,返回x的平方根,x不能是负数。
TAN(x)函数,返回x的正切。x是以弧度表示的角度。
TANH(x)函数,返回x的双曲正切。
TRUNC(x[,y])截取值函数,Y缺省为0,这样X被截取成一个整数。如果Y为负数,那么截取到小数点左边相应位置
WIDTH_BUCKET(x,min,max,num_buckets) 只能在SQL语句中使用。
使用WIDTH_BUCKET可以根据输入参数创建等长的段。范围MIN到MAX被分为num_buckets节,每节有相同的大小。返回X所在的那一节。如果X小于MIN,将返回0,如果X大于或等于MAX,将返回num_buckets+1.MIN和MAX
都不能为NULL,num_buckets必须是一个正整数。如果X是NULL,则返回NULL。
SQLServer和Oracle的常用函数对比
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.取整(截取)
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from dual
5.四舍五入
S:select round(1.23456,4) value 1.23460
O:select round(1.23456,4) value from dual 1.2346
6.e为底的幂
S:select Exp(1) value 2.7182818284590451
O:select Exp(1) value from dual 2.71828182
7.取e为底的对数
S:select log(2.7182818284590451) value 1
O:select ln(2.7182818284590451) value from dual; 1
8.取10为底对数
S:select log10(10) value 1
O:select log(10,10) value from dual; 1
9.取平方
S:select SQUARE(4) value 16
O:select power(4,2) value from dual 16
10.取平方根
S:select SQRT(4) value 2
O:select SQRT(4) value from dual 2
11.求任意数为底的幂
S:select power(3,4) value 81
O:select power(3,4) value from dual 81
12.取随机数
S:select rand() value
O:select sys.dbms_random.value(0,1) value from dual;
13.取符号
S:select sign(-8) value -1
O:select sign(-8) value from dual -1
----------数学函数
14.圆周率
S:SELECT PI() value 3.1415926535897931
O:不知道
15.sin,cos,tan 参数都以弧度为单位
例如:select sin(PI()/2) value 得到1(SQLServer)
16.Asin,Acos,Atan,Atan2 返回弧度
17.弧度角度互换(SQLServer,Oracle不知道)
DEGREES:弧度-〉角度
RADIANS:角度-〉弧度
---------数值间比较
18. 求集合最大值
S:select max(value) value from
(select 1 value......余下全文>>