Oracle基本函数总结
Posted 花式火星人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle基本函数总结相关的知识,希望对你有一定的参考价值。
1.substrb & substr
substrb按字节长度截取,substr按字符长度截取,(字符长度具体取决于字符集的设置类型)。
2.lengthb & length
lengthb按字节长度截取,length 按字符长度截取(同理)。
3.connect by level
--1 --获取连续的数据(注意:level只用使用<,<=,=符号)
select level from dual connect by level <= 5;
--2 --获取连续的指定时间(注意:获取连续的时间需要包含当天需要再+1天)
select sysdate-level+1 days from dual connect by level <= 5;
--Oracle常见函数记录
--数值型函数
----返回绝对值 abs(x)
----返回正负值 sign(x)
----返回较大的最小整数 ceil(x)
----返回较小的最大整数 floor(x)
----返回x的y次幂 power(x,y)
----返回常量e的y次幂 exp(y)
----返回以x为底的y的对数 log(x,y)
----返回以e为底的y的对数(e为数学常量)
----返回x除以y的余数 mod(x,y)
----返回四舍五入后的值 round(x[,y])
----返回x按精度y截取后的值 trun(x[,y])
----返回x的平方根 sqrt(x)
--字符型函数
----返回字符表达式最左端字符的ASCII 码值 ASCII(x1)
----返回ASCII为x的字符 chr()
----连接两个字符串 concat(c1,c2)
----把每个单词的首字个字母变成大写 initcap(c1)
----把整个字符串转换为小写 lower(c1)
----把整个字符串转换为大写 upper(c1)
----把每个单词首个字母变为大写 nls_initcap(x[,y])
----把整个字符串转换为小写 nls_lower(x[,y])
----把整个字符串转换为大写 nls_upper(x[,y])
----字符串中搜索字符位置(全角算1字符) instr(C1,C2[,I[,J]])
----字符串中搜索字符位置(全角算2字符) instrb(C1,C2[,I[,J]])
----返回字符串的长度(全角算1字符) length(c1)
----返回字符串的长度(全角算2字符)lengthb(c1)
----返回字符串的长度(其他)lengthc(c1) length2(c1) length4(c1)
----在左边添加字符 lpad(c1,n[,c2])
----在右边添加字符 rpad(c1,n[,c2])
----删除左边字符 ltrim(c1,[,c2])
----删除右边字符 rtrim(c1,[,c2])
----替换子串字符 replace(c1,c2[,c3])
----字符串语音表示形式 soundex(c1)
----截取字符串(全角算1字符) substr(c1,n1[,n2])
----截取字符串(全角算2字符) substrb(c1,n1[,n2])
----替换子字符 translate(c1,c2,c3)
----删除左边和右边字符串 trim(c1 from c2)
--日期函数
----返回系统当前日期 sysydate
----返回指定月数的日期 add_months()
----返回本月最后一天的日期 last_day()
----返回两个日期间隔月数 months_between
----返回时区的对应时间 new_time()
----四舍五入后的日期第一天 round()
----返回日期所在期间的第一天 trunc()
----返回下周某一天的日期 next_day()
----提取时间日期中的数据 extract()
----返回会话中的时间和日期 localtimestamp
----返回当前会话时区中的当前日期和时间 current_timestamp
----返回数据库时区设置 dbtimezone
----返回当前会话时区 sessiontimezone
----变动日期时间数值 interval
--转换函数
----字符串转为rowid值 chartorowid(c1)
----rowid的值转换为字符串 rowidtochar(rowid)
----字符串语言字符集转换 convert(c1,set1,set2)
----十六进制构成的字符串转换为二进制 HEXTORAW(c1)
----二进制构成的字符串转换为十六进制 rawtohex(c1)
----将日期或数据转换为char数据类型TO_CHAR(x[[,c2],C3])
----字符串转换为日期型 TO_DATE(X[,c2[,c3]])
----字符串转换为字符型TO_NUMBER(X[[,c2],c3])
----半角转化为全角TO_MULTI_BYTE(c1)
----全角转化为半角to_single_byte(c1)
----字符集名称转换为ID nls_charset_id(c1)
----字符集ID转换为名称 nls_charset_name(n1)
--聚组函数
----统计平均值 AVG([distinct|all]x)
----统计合计值 SUM([distinct|all]x)
----统计标准误差 STDDEV([distinct|all]x)
----统计方差 VARIANCE([distinct|all]x)
----统计查询所得的行数 count(*|[distinct|all]x)
----统计最大值 MAX([distinct|all]x)
----统计最小值 MIN([distinct|all]x)
--其它函数
----为空值赋值 nvl() nvl2()
【语法】NVL (expr1, expr2)
【功能】若expr1为NULL,返回expr2;expr1不为NULL,返回expr1。
注意两者的类型要一致
【语法】NVL2 (expr1, expr2, expr3)
【功能】expr1不为NULL,返回expr2;expr2为NULL,返回expr3。
expr2和expr3类型不同的话,expr3会转换为expr2的类型
select nvl2(1,\'1\',3) from dual;
----COALESCE函数:第一个不为空的表达式,如果都为空则返回空值
select coalesce(null ,1,2,3) from dual;
select coalesce(null ,null,null) from dual;
----条件取值 decode
以上是关于Oracle基本函数总结的主要内容,如果未能解决你的问题,请参考以下文章