Oracle有哪些常用函数?

如题所述

1.ASCII()
c1是一字符串,返回c1第一个字母的ASCII码,他的逆函数是CHR()
SELECT ASCII('A') BIG_A,ASCII('z') BIG_z FROM empBIG_A BIG_z65 122
2.CHR(<i>)[NCHAR_CS]
 i是一个数字,函数返回十进制表示的字符
select CHR(65),CHR(122),CHR(223) FROM empCHR65 CHR122 CHR223A z B
3.CONCAT(,)
 c1,c2均为字符串,函数将c2连接到c1的后面,如果c1为null,将返回c2.如果c2为null,则返回c1,如果c1、c2都为null,
则返回null。他和操作符||返回的结果相同
select concat('slobo ','Svoboda') username from dualusernameslobo Syoboda
4.INITCAP()
 c1为一字符串。函数将每个单词的第一个字母大写其它字母小写返回。单词由空格,控制字符,标点符号限制。
select INITCAP('veni,vedi,vici') Ceasar from dualCeasarVeni,Vedi,Vici
5.INSTR(,[,<i>[,]])
 c1,c2均为字符串,i,j为整数。函数返回c2在c1中第j次出现的位置,搜索从c1的第i个字符开始。当没有发现需要的
字符时返回0,如果i为负数,那么搜索将从右到左进行,但是位置的计算还是从左到右,i和j的缺省值为1.
select INSTR('Mississippi','i',3,3) from dualINSTR('MISSISSIPPI','I',3,3)11select INSTR('Mississippi','i',-2,3)
from dualINSTR('MISSISSIPPI','I',3,3)2
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-16
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。本回答被网友采纳
第2个回答  2017-05-23
Oracle常用函数:
1、Substr 截取函数
Select productid 产品编号,substr(productid,1,6) as 截取后的编号 from 表名 //查询产品编号从第一位开始的后6位
2、Distinct 去除重复函数
Select distinct(productid) 产品编号 from 表名 //查询产品编号去除重复的编号
3、Order By 排序函数 asc(默认) desc 默认null 最大 。。。。。。order by 列名 asc (desc) nulls first 可以将null 放在首位
4、Null 查询时 不能使用”=” 而用 is null 或 is not null 。。。。。。where price is null (is not null)
5、Group by 他不属于where 语句 故位置不固定 他不能用在where函数中 Select avg(price) from 表名 group by 类型,厂家
6、Having 一般与group by 公用的限制语句 他不与单个值有关而是与组有关
Select category, avg(productprice) 产品价格 from product group by category having avg(productprice)>2000
7、Inner join……on 内连接语句
Select p.productname, p.productprice, c.categoryid from productinfo p , cageoryinfo c where p.category = c.categoryid 等价于
Select p.productname, p.productprice, c.categoryid from productinfo p inner join cageoryinfo c on p.category = c.categoryid
8、Abs 取绝对值的函数 Select Asb(-100) from dual
9、mod 取余函数
Select mod(10,6) from dual 值为4 若b为0 返回A A b
10 、sign 返回数的符号 正为1 0为0 负为-1
Select sign(‘9’),sign(-9),sign(10),sign(0.00) from dual 返回为1,-1,1,0
11、cell(n) 返回>=n的最小整数 要求n必须是十进制的数
Floor(n) 返回<=n的最大整数 要求n 必须是十进制的数
12、sort(n) 返回n的平方根 当n小于0是返回nan Power(n1,n2) 返回 n1的n2次幂 Exp(n) 返回e的n次幂
Log(n1,n2) 返回以n1为底n2的对数 n1不为0,1 Ln(n) 返回n的自然对数 n不为 0,1
13、round(n,interger) 四舍五入n的interger位 若interger为正保留小数点后interger位四舍五入,若interger为负向小数点前数interger位四舍五入 如round(155,-2) 结果为200 。
Trunc(n,interger) 截取n的interger位 若interger为正向小数点后截取interger位,若interger为负向小数点前截取interger为 如 trunk(155,-2) 结果为100
14、ASCII(char)返回参数首字母的ASCII码值
15、lengtch(char) 返回字符串char 的长度
16、 substr(‘给定的字符串’,A,B) A表示从第几位开始截 B表示截几位,如果A为负值 从右边数到A位开始向后截B位
17、connect(char1,char2)连接字符串 把char1和char2连接起来 connect(‘我的’,‘测试’)等价于‘我的’||‘测试’
18、cast 数据类型转换函数
Select cast(’123’ as interger),cast(123 as varchar2(8)) from dual 结果为123 123
19、chartorowid 函数 将 char类型转换为ROWID 类型 但是最后长度必须满足rowid的标准18位
Rowidtochar 函数 将rowid 类型转换为char 因为rowid长度为18,故转换成的字符串也是18位。
20、to_char(number) 将数字类型转换成字符类型 To_char(data) 将日期转换成字符型
21、lnnvl (条件) 排除条件得到指定条件之外的函数
Select *from productinfo where lnnvl(quantity>=70) 获得quantity小于70的数据
22、nvl(expr1,expr2) 如果expr1为null 则返回expr2 否则返回expr1 替换时常用 Select productname,nvl(quantity,0) from productinfo 表示若quantity为NULL返回0否则返回quantity的值
Nvl2(expr1,expr2,expr3) 意思一样当expr1为空返回expr3,不为空返回expr2
相似回答