0
点赞
收藏
分享

微信扫一扫

Oracle实用必背函数大全

洲行 2022-03-11 阅读 92
oracle函数

数值型函数

ABS(x)

【功能】返回x的绝对值
【参数】x,数字型表达式

sign(x)

【功能】返回x的正负值
【参数】x,数字型表达式
【返回】数字,若为正值返回1,负值返回-1,0返回0

ceil(x)

【功能】返回大于等于x的最小整数值
【参数】x,数字型表达式

floor(x)

【功能】返回小于等于x的最大整数值

power(x,y)

【功能】返回x的y次幂
【参数】x,y 数字型表达式

exp(y)

【功能】返回e的y次幂(e为数学常量)
【参数】y,数字型表达式

log(x,y)

【功能】返回以x为底的y的对数
【参数】x,y,数字型表达式,
【条件】x,y都必须大于0

mod(x,y)

【功能】返回x除以y的余数
【参数】x,y,数字型表达式

round(x[,y])

【功能】返回四舍五入后的值
【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位。

trunc(x[,y])

【功能】返回x按精度y截取后的值
【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则截取到y位小数,如果y小于0则截取到小数点向左第y位,小数前其它数据用0表示。

sqrt(x)

【功能】返回x的平方根
【参数】x数字型表达式

三角函数

SIN(x)

【功能】返回一个数字的正弦值
【示例】select sin(1.57079) from dual;
 返回:  1

SIGH(x)

【功能】返回双曲正弦的值
【示例】select sin(20),sinh(20) from dual;
返回:0.91294525, 242582598

COS(x)

【功能】返回一个给定数字的余弦
【示例】select cos(-3.1415927) from dual;
返回: -1

COSH(x)

【功能】返回一个数字反余弦值
【示例】select cosh(20) from dual;
返回:242582598

TAN

【功能】返回数字的正切值
【示例】select tan(20),tan(10) from dual;
返回:2.2371609 ,0.64836083

TANH

【功能】返回数字n的双曲正切值
【示例】select tanh(20),tan(20) from dual;
返回:1 ,2.2371609

ASIN(x)

【功能】给出反正弦的值
【示例】select asin(0.5) from dual;
返回:0.52359878

ACOS(x)

【功能】给出反余弦的值
【示例】select acos(-1) from dual;
返回:3.1415927

ATAN(x)

【功能】返回一个数字的反正切值
【示例】 select atan(1) from dual;
返回:0.78539816z

字符型函数

ASCII(x1)

【功能】:返回字符表达式最左端字符的ASCII 码值。
【参数】:x1,字符表达式

CHR(n1)

【功能】:将ASCII 码转换为字符。
【参数】:n1,为0 ~ 255,整数

CONCAT(c1,c2)

【功能】连接两个字符串
【参数】c1,c2 字符型表达式
同:c1||c2

INITCAP(c1)

【功能】返回字符串并将字符串的第一个字母变为大写,其它字母小写;
【参数】c1字符型表达式

LOWER(c1)

【功能】:将字符串全部转为小写
【参数】:c1,字符表达式

UPPER(c1)

【功能】将字符串全部转为大写
【参数】c1,字符表达式

INSTR(C1,C2[,I[,J]])

【功能】在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
【说明】多字节符(汉字、全角符等),按1个字符计算
【参数】
C1    被搜索的字符串
C2    希望搜索的字符串
I     搜索的开始位置,默认为1
J     第J次出现的位置,默认为1

INSTRB(C1,C2[,I[,J]])

【功能】在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
【说明】多字节符(汉字、全角符等),按2个字符计算
【参数】
C1    被搜索的字符串
C2    希望搜索的字符串
I     搜索的开始位置,默认为1
J     第J次出现的位置,默认为1

LENGTH(c1)

【功能】返回字符串的长度;
【说明】多字节符(汉字、全角符等),按1个字符计算
【参数】C1 字符串

LENGTHB(c1)

【功能】返回字符串的长度;
【说明】多字节符(汉字、全角符等),按2个字符计算
【参数】C1 字符串

LENGTHC(c1),LENGTH2(c1),LENGTH4(c1)

【功能】返回字符串的长度;
【说明】多字节符(汉字、全角符等),按1个字符计算
【参数】C1 字符串
他们的含义分别是:
Length函数返回字符的个数,使用定义是给定的字符集来计算字符的个数
LENGTHB给出该字符串的byte
LENGTHC使用纯Unicode
LENGTH2使用UCS2
LENGTH4使用UCS4

LPAD(c1,n[,c2])

【功能】在字符串c1的左边用字符串c2填充,直到长度为n时为止
【参数】C1 字符串
n 追加后字符总长度
c2 追加字符串,默认为空格
【返回】字符型
【说明】如果c1长度大于n,则返回c1左边n个字符
如果如果c1长度小于n,c2和c1连接后大于n,则返回连接后的右边n个字符

RPAD(c1,n[,c2])

【功能】在字符串c1的右边用字符串c2填充,直到长度为n时为止
【参数】C1 字符串
n 追加后字符总长度
c2 追加字符串,默认为空格
【返回】字符型
【说明】如果c1长度大于n,则返回c1左边n个字符
如果如果c1长度小于n,c1和c2连接后大于n,则返回连接后的左边n个字符
如果如果c1长度小于n,c1和c2连接后小于n,则返回c1与多个重复c2连接(总长度>=n)后的左边n个字符

LTRIM(c1,[,c2])

【功能】删除左边出现的字符串
【参数】C1 字符串
c2 追加字符串,默认为空格

RTRIM(c1,[,c2])

【功能】删除右边出现的字符串
【参数】C1 字符串
c2 追加字符串,默认为空格

REPLACE(c1,c2[,c3])

【功能】将字符表达式值中,部分相同字符串,替换成新的字符串
【参数】
c1   希望被替换的字符或变量 
c2   被替换的字符串
c3   要替换的字符串,默认为空(即删除之意,不是空格)

SOUNDEX(c1)

【功能】返回字符串参数的语音表示形式
【参数】c1,字符型

SUBSTR(c1,n1[,n2])

【功能】取子字符串
【说明】多字节符(汉字、全角符等),按1个字符计算
【参数】在字符表达式c1里,从n1开始取n2个字符;若不指定n2,则从第y个字符直到结束的字串.
【返回】字符型

SUBSTRB(c1,n1[,n2])

【功能】取子字符串
【说明】多字节符(汉字、全角符等),按2个字符计算
【参数】在字符表达式c1里,从n1开始取n2个字符;若不指定n2,则从第y个字符直到结束的字串.
【返回】字符型,如果从多字符右边开始,则用空格表示。

TRANSLATE(c1,c2,c3)

【功能】将字符表达式值中,指定字符替换为新字符
【说明】多字节符(汉字、全角符等),按1个字符计算
【参数】
c1   希望被替换的字符或变量 
c2   查询原始的字符集
c3   替换新的字符集,将c2对应顺序字符,替换为c3对应顺序字符
如果c3长度大于c2,则c3长出后面的字符无效
如果c3长度小于c2,则c2长出后面的字符均替换为空(删除)
如果c3长度为0,则返回空字符串。
如果c2里字符重复,按首次位置为替换依据

TRIM(c1 from c2)

【功能】删除左边和右边出现的字符串
【参数】C2 删除前字符串
c1 删除字符串,默认为空格r

日期函数

sysdate

【功能】:返回当前日期。
【参数】:没有参数,没有括号

add_months(d1,n1)

【功能】:返回在日期d1基础上再加n1个月后新的日期。
【参数】:d1,日期型,n1数字型

last_day(d1)

【功能】:返回日期d1所在月份最后一天的日期。
【参数】:d1,日期型

months_between(d1,d2)

【功能】:返回日期d1到日期d2之间的月数。
【参数】:d1,d2 日期型
【返回】:数字
如果d1>d2,则返回正数
如果d1<d2,则返回负数

NEW_TIME(dt1,c1,c2)

【功能】:给出时间dt1在c1时区对应c2时区的日期和时间
【参数】:dt1,d2 日期型
【返回】:日期时间
【参数】:c1,c2对应的 时区及其简写   
  大西洋标准时间:AST或ADT   
  阿拉斯加_夏威夷时间:HST或HDT   
  英国夏令时:BST或BDT   
  美国山区时间:MST或MDT   
  美国中央时区:CST或CDT   
  新大陆标准时间:NST   
  美国东部时间:EST或EDT   
  太平洋标准时间:PST或PDT   
  格林威治标准时间:GMT   
  Yukou标准时间:YST或YDT 

round(d1[,c1])

【功能】:给出日期d1按期间(参数c1)四舍五入后的期间的第一天日期(与数值四舍五入意思相近)
【参数】:d1日期型,c1为字符型(参数),c1默认为j(即最近0点日期)
【参数表】:c1对应的参数表:
最近0点日期: 取消参数c1或j
最近的星期日:day或dy或d
最近月初日期:month或mon或mm或rm 
最近季日期:q
最近年初日期:syear或year或yyyy或yyy或yy或y(多个y表示精度)  
最近世纪初日期:cc或scc

trunc(d1[,c1])

【功能】:返回日期d1所在期间(参数c1)的第一天日期
【参数】:d1日期型,c1为字符型(参数),c1默认为j(即当前日期)
【参数表】:c1对应的参数表:
最近0点日期: 取消参数c1或j
最近的星期日:day或dy或d (每周顺序:日,一,二,三,四,五,六)
最近月初日期:month或mon或mm或rm 
最近季日期:q
最近年初日期:syear或year或yyyy或yyy或yy或y(多个y表示精度)  
最近世纪初日期:cc或scc

next_day(d1[,c1])

【功能】:返回日期d1在下周,星期几(参数c1)的日期
【参数】:d1日期型,c1为字符型(参数),c1默认为j(即当前日期)
【参数表】:c1对应:星期一,星期二,星期三……星期日

extract(c1 from d1)

【功能】:日期/时间d1中,参数(c1)的值
【参数】:d1日期型(date)/日期时间型(timestamp),c1为字符型(参数)
【参数表】:c1对应的参数表详见示例

localtimestamp

【功能】:返回会话中的日期和时间 
【参数】:没有参数,没有括号

current_timestamp

【功能】:以timestamp with time zone数据类型返回当前会话时区中的当前日期
【参数】:没有参数,没有括号

current_date

【功能】:返回当前会话时区中的当前日期 
【参数】:没有参数,没有括号

dbtimezone

【功能】:返回时区
【参数】:没有参数,没有括号

SESSIONTIMEZONE

【功能】:返回会话时区
【参数】:没有参数,没有括号

INTERVAL c1 set1

【功能】:变动日期时间数值
【参数】:c1为数字字符串或日期时间字符串,set1为日期参数
【参数表】:set1具体参照示例
【返回】:日期时间格式的数值,前面多个+号
以天或天更小单位时可用数值表达式借用,如1表示1天,1/24表示1小时,1/24/60表示1分钟

chartorowid(c1)

【功能】转换varchar2类型为rowid值
【参数】c1,字符串,长度为18的字符串,字符串必须符合rowid格式
【返回】返回rowid值

ROWIDTOCHAR(rowid)

【功能】转换rowid值为varchar2类型
【参数】rowid,固定参数
【返回】返回长度为18的字符串

CONVERT(c1,set1,set2)

【功能】将源字符串c1 从一个语言字符集set2转换到另一个目的set1字符集
【参数】c1,字符串,set1,set2为字符型参数

HEXTORAW(c1)

【功能】将一个十六进制构成的字符串转换为二进制
【参数】c1,十六进制的字符串

RAWTOHEX(c1)

【功能】将一个二进制构成的字符串转换为十六进制
【参数】c1,二进制的字符串

TO_CHAR(x[[,c2],C3])

【功能】将日期或数据转换为char数据类型
【参数】
x是一个date或number数据类型。
c2为格式参数
c3为NLS设置参数

【返回】varchar2字符型

TO_DATE(X[,c2[,c3]])

【功能】将字符串X转化为日期型

TO_NUMBER(X[[,c2],c3])

【功能】将字符串X转化为数字型

TO_MULTI_BYTE(c1)

【功能】将字符串中的半角转化为全角

to_single_byte(c1)

【功能】将字符串中的全角转化为半角

nls_charset_id(c1)

【功能】字符集名称转换为ID

nls_charset_name(n1)

【功能】字符集ID转换为名称j

聚合函数

AVG([distinct|all]x)

【功能】统计数据表选中行x列的平均值。
【参数】all表示对所有的值求平均值,distinct只对不同的值求平均值,默认为all
如果有参数distinct或all,需有空格与x(列)隔开。
【参数】x,只能为数值型字段

SUM([distinct|all]x)

【功能】统计数据表选中行x列的合计值。
【参数】all表示对所有的值求合计值,distinct只对不同的值求合计值,默认为all
如果有参数distinct或all,需有空格与x(列)隔开。

STDDEV([distinct|all]x)

【功能】统计数据表选中行x列的标准误差。
【参数】all表示对所有的值求标准误差,distinct只对不同的值求标准误差,默认为all
如果有参数distinct或all,需有空格与x(列)隔开。

VARIANCE([distinct|all]x)

【功能】统计数据表选中行x列的方差。
【参数】all表示对所有的值求方差,distinct只对不同的值求方差,默认为all
如果有参数distinct或all,需有空格与x(列)隔开。

count(*|[distinct|all]x)

【功能】统计数据表选中行x列的合计值。
【参数】
*表示对满足条件的所有行统计,不管其是否重复或有空值(NULL)
all表示对所有的值统计,默认为all
distinct只对不同的值统计,
如果有参数distinct或all,需有空格与x(列)隔开,均忽略空值(NULL)。
【参数】x,可为数字、字符、日期型及其它类型的字段

MAX([distinct|all]x)

【功能】统计数据表选中行x列的最大值。
【参数】all表示对所有的值求最大值,distinct只对不同的值求最大值,默认为all
如果有参数distinct或all,需有空格与x(列)隔开。

MIN([distinct|all]x)

【功能】统计数据表选中行x列的最大值。
【参数】all表示对所有的值求最大值,distinct只对不同的值求最大值,默认为all
如果有参数distinct或all,需有空格与x(列)隔开。

其它函数

NVL (expr1, expr2)

【功能】若expr1为NULL,返回expr2;expr1不为NULL,返回expr1。
注意两者的类型要一致 

NVL2 (expr1, expr2, expr3) 

【功能】expr1不为NULL,返回expr2;expr2为NULL,返回expr3。
expr2和expr3类型不同的话,expr3会转换为expr2的类型

decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

【功能】根据条件返回相应值
【参数】c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或null
注:值1……n 不能为条件表达式,这种情况只能用case when then end解决
含义解释:  
  decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)  
  该函数的含义如下:  
  IF 条件=值1 THEN
  RETURN(翻译值1)
  ELSIF 条件=值2 THEN
  RETURN(翻译值2)
  ......
  ELSIF 条件=值n THEN
  RETURN(翻译值n)  
  ELSE
  RETURN(缺省值)
  END IF
或:
  when case 条件=值1 THEN
  RETURN(翻译值1)
  ElseCase 条件=值2 THEN
  RETURN(翻译值2)
  ......
  ElseCase 条件=值n THEN
  RETURN(翻译值n)  
  ELSE
  RETURN(缺省值)
  END

case [<表达式>]
when <表达式条件值1> then <满足条件时返回值1>
[when <表达式条件值2> then <满足条件时返回值2>
……
[else  <不满足上述条件时返回值>]]
end

【功能】当:<表达式>=<表达式条件值1……n> 时,返回对应 <满足条件时返回值1……n> 
当<表达式条件值1……n>不为条件表达式时,与函数decode()相同,
decode(<表达式>,<表达式条件值1>,<满足条件时返回值1>,<表达式条件值2>,<满足条件时返回值2> ……,<不满足上述条件时返回值>)
【参数】
<表达式> 默认为true (逻辑型)
<表达式条件值1……n> 类型要与<表达式>类型一致,
若<表达式>为字符型,则<表达式条件值1……n>也要为字符型
【注意点】
1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名
5、只返回第一个符合条件的值,剩下的when部分将会被自动忽略,得注意条件先后顺序

sys_guid()

【功能】生产32位的随机数,不过中间包括一些大写的英文字母。
【返回】长度为32位的字符串,包括0-9和大写A-Fj

窗口函数

这里我整理的不是很全,下面链接有详细的窗口函数讲解:

Hive:窗口函数_不花的花和尚的博客-CSDN博客_hive 窗口函数

举报

相关推荐

0 条评论