Oracle中常用的的函数
2021/9/23 2:13:01
本文主要是介绍Oracle中常用的的函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Oracle中常用的的函数
1.数值型函数
1.ABS(x) 【功能】返回x的绝对值 【参数】x,数字型表达式 【返回】数字 2.ceil(x) 【功能】向上取整 【参数】x,数字型表达式 【返回】数字 3.floor(x) 【功能】向下取整 【参数】x,数字型表达式 【返回】数字 4.power(x,y) 【功能】返回x的y次幂 【参数】x,y 数字型表达式 【返回】数字 5mod(x,y) 【功能】返回x除以y的余数 【参数】x,y,数字型表达式 【返回】数字 6.round(x[,y]) 【功能】返回四舍五入后的值 【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则四舍五入为y位小数,如果y小于0则四舍五入到小数点向左第y位。 【返回】数字 6trunc(x[,y]) 【功能】返回x按精度y截取后的值,和round作用相似只是不用进行四舍五入 【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则截取到y位小数,如果y小于0则截取到小数点向左第y位,小数前其它数据用0表示。 【返回】数字
2.字符型函数
1.CONCAT(c1,c2) 【功能】连接两个字符串 【参数】c1,c2 字符型表达式 【返回】字符型 2INITCAP(c1) 【功能】返回字符串并将字符串的第一个字母变为大写,其它字母小写; 【参数】c1字符型表达式 【返回】字符型 eg: select initcap('accd fDS fS') from dual; out:Accd Fds Fs 3.LOWER(c1)/UPPER(c1) 【功能】:将字符串全部转为小写/大写 【参数】:c1,字符表达式 【返回】:字符型 4.INSTR(C1,C2[,I[,J]]) 【功能】在一个字符串中搜索指定的字符,返回发现指定的字符的位置; 【参数】 C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 第J次出现的位置,默认为1 【返回】数值 eg:select instr('accd','c',1,2) from dual; out:3 5.LENGTH(c1) 【功能】返回字符串的长度; 【说明】多字节符(汉字、全角符等),按1个字符计算 【参数】C1 字符串 【返回】数值型 6.LPAD(c1,n[,c2]) 【功能】在字符串c1的左边用字符串c2填充,直到长度为n时为止 【参数】 C1 字符串 n 追加后字符总长度 c2 追加字符串,默认为空格 【返回】字符型 【说明】如果c1长度大于n,则返回c1左边n个字符;如果如果c1长度小于n,c2和c1连接后大于n,则返回连接后的右边n个字符 7.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个字符 8.LTRIM(c1,[,c2])/RTRIM(c1,[,c2]) 【功能】删除左/右边出现的字符串 【参数】 C1 字符串 c2 追加字符串,默认为空格 【返回】字符型 9.TRIM(c1 from c2) 【功能】删除左边和右边出现的字符串 【参数】 C2 删除前字符串 c1 删除字符串,默认为空格 【返回】字符型 10.REPLACE(c1,c2[,c3]) 【功能】将字符表达式值中,部分相同字符串,替换成新的字符串 【参数】 c1 希望被替换的字符或变量 c2 被替换的字符串(换谁) c3 要替换的字符串 (换成什么,默认是删除) 【返回】字符型 11.SUBSTR(c1,n1[,n2]) 【功能】取子字符串 【说明】多字节符(汉字、全角符等),按1个字符计算 【参数】在字符表达式c1里,从n1开始取n2个字符;若不指定n2,则从第n1个字符直到结束 【返回】字符型 12.TRANSLATE(c1,c2,c3) 【功能】将字符表达式值中,指定字符替换为新字符 eg:select translate('abeda','ab','d') from dual; out:dedd 具体解析请见我的博客:https://mp.csdn.net/mp_blog/creation/editor/119684830
3.日期函数
1.sysdate/current_date 【功能】:返回当前日期。 【参数】:没有参数,没有括号 【返回】:日期 2.add_months(d1,n1) 【功能】:返回在日期d1基础上再加n1个月后新的日期。 【参数】:d1,日期型,n1数字型 【返回】:日期 3.last_day(d1) 【功能】:返回日期d1所在月份最后一天的日期。注:没有first_day(); 【参数】:d1,日期型 【返回】:日期 4.months_between(d1,d2) 【功能】:返回日期d1到日期d2之间的月数。 【参数】:d1,d2 日期型 【返回】:数字 如果d1>d2,则返回正数 如果d1<d2,则返回负数 5.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 【返回】:日期 【示例】 select sysdate 当时日期, round(sysdate) 最近0点日期, round(sysdate,'day') 最近星期日, round(sysdate,'month') 最近月初, round(sysdate,'q') 最近季初日期, round(sysdate,'year') 最近年初日期 from dual; 6.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 【返回】:日期 【示例】 select sysdate 当时日期, trunc(sysdate) 今天日期, trunc(sysdate,'day') 本周星期日, trunc(sysdate,'month') 本月初, trunc(sysdate,'q') 本季初日期, trunc(sysdate,'year') 本年初日期 from dual; 7.next_day(d1[,c1]) 【功能】:返回日期d1的下个星期几(参数c1)的日期 【参数】:d1日期型,c1为字符型(参数),c1默认为j(即当前日期) 【参数表】:c1对应:星期一,星期二,星期三……星期日 【返回】:日期 【示例】 select sysdate 当时日期, next_day(sysdate,'星期一') 下个星期一, next_day(sysdate,'星期二') 下个星期二, next_day(sysdate,'星期三') 下个星期三, next_day(sysdate,'星期四') 下个星期四, next_day(sysdate,'星期五') 下个星期五, next_day(sysdate,'星期六') 下个星期六, next_day(sysdate,'星期日') 下个星期日 from dual; 8.extract(c1 from d1) 【功能】:日期/时间d1中,参数(c1)的值 【参数】:d1日期型(date)/日期时间型(timestamp),c1为字符型(参数) 【参数表】: c1对应的参数表详见示例 【返回】:字符 【示例】 只可以从一个date类型中截取年月日 select sysdate 当前日期, extract(DAY from sysdate ) 日, extract(MONTH from sysdate ) 月, extract(YEAR from sysdate ) 年 from dual; 从timestamp中获取年月日时分秒 select extract(year from systimestamp) year, extract(month from systimestamp) month, extract(day from systimestamp) day, extract(minute from systimestamp) minute, extract(second from systimestamp) second, extract(timezone_hour from systimestamp) th, extract(timezone_minute from systimestamp) tm, extract(timezone_region from systimestamp) tr, extract(timezone_abbr from systimestamp) ta from dual
4.转换函数
1.TO_CHAR(x[[,c2],C3]) 【功能】将日期或数据转换为char数据类型 【参数】 x是一个date或number数据类型。 c2为格式参数 c3为NLS设置参数 如果x为日期nlsparm=NLS_DATE_LANGUAGE 控制返回的月份和日份所使用的语言。 如果x为数字nlsparm=NLS_NUMERIC_CHARACTERS 用来指定小数位和千分位的分隔符,以及货币符号。 NLS_NUMERIC_CHARACTERS ="dg", NLS_CURRENCY="string" 【示例】1 to_char(sysdate,'d') 每周第几天 to_char(sysdate,'dd') 每月第几天 to_char(sysdate,'ddd') 每年第几天 to_char(sysdate,'ww') 每年第几周 to_char(sysdate,'mm') 每年第几月 to_char(sysdate,'q') 每年第几季 to_char(sysdate,'yyyy') 年 2.TO_DATE(X[,c2[,c3]]) 【功能】将字符串X转化为日期型 【参数】c2,c3,字符型,参照to_char() 【返回】字符串 如果x格式为日期型(date)格式时,则相同表达:date x 如果x格式为日期时间型(timestamp)格式时,则相同表达:timestamp x 【相反】 to_char(date[,c2[,c3]]) 【示例】 select to_date('199912','yyyymm'), to_date('2000.05.20','yyyy.mm.dd'), (date '2008-12-31') XXdate, to_date('2008-12-31 12:31:30','yyyy-mm-dd hh24:mi:ss'), (timestamp '2008-12-31 12:31:30') XXtimestamp from dual;
5.聚合函数
1.AVG([distinct|all]x) 【功能】统计数据表选中行x列的平均值。 【说明】该函数有局限如果有空的话该列不参与计算所以通常nvl一起使用 eg :avg(nvl(列名,0)) 【参数】 all表示对所有的值求平均值,distinct只对不同的值求平均值,默认为all 如果有参数distinct或all,需有空格与x(列)隔开。 【参数】x,只能为数值型字段 【返回】数字值 2.SUM([distinct|all]x) 【功能】统计数据表选中行x列的合计值。 【参数】 all表示对所有的值求合计值,distinct只对不同的值求合计值,默认为all 如果有参数distinct或all,需有空格与x(列)隔开。 【参数】x,只能为数值型字段 【返回】数字值 3.count(*|[distinct|all]x) 【功能】统计数据表选中行x列的合计值。 【参数】 *表示对满足条件的所有行统计,不管其是否重复或有空值(NULL) all表示对所有的值统计,默认为all distinct只对不同的值统计, 如果有参数distinct或all,需有空格与x(列)隔开,均忽略空值(NULL)。 【参数】x,可为数字、字符、日期型及其它类型的字段 【返回】数字值 4.MAX/MIN([distinct|all]x) 【功能】统计数据表选中行x列的最大/小值。 【参数】all表示对所有的值求最大/小值,distinct只对不同的值求最大/小值,默认为all 如果有参数distinct或all,需有空格与x(列)隔开。 【参数】x,可为数字、字符或日期型字段 【返回】对应x字段类型
6.其他函数
1.【语法】NVL (expr1, expr2) 【功能】若expr1为NULL,返回expr2;expr1不为NULL,返回expr1。注意两者的类型要一致 【语法】NVL2 (expr1, expr2, expr3) 【功能】expr1不为NULL,返回expr2;expr1为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型 2.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>也要为字符型 eg: SELECT CASE 表达式 WHEN 表达式条件值1 THEN 满足条件时返回值1 WHEN 表达式条件值1 THEN 满足条件时返回值1 WHEN 表达式条件值1 THEN 满足条件时返回值1 ELSE 不满足上述条件时返回值 END from dual; 3.decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 【功能】根据条件返回相应值 【参数】c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或null 注:值1……n 不能为条件表达式,这种情况只能用case when then end解决 4.dbms_random dbms_random.value方法这种用法没有参数,会返回一个具有38位精度的数值,范围从0.0到1.0,但不包括1.0。 dbms.random,value(n1,n2),value带有两个参数,第一个指下限,第二个指上限,将会生成下限到上限之间的数字,但不包含上限。 dbms_random.string(opt CHAR, len NUMBER) 方法 opt : ■ 'u', 'U' - returning string in uppercase alpha characters 返回大写字母的字符串 ■ 'l', 'L' - returning string in lowercase alpha characters 返回小写字母的字符串 ■ 'a', 'A' - returning string in mixed case alpha characters 返回大小写混合的字符串 ■ 'x', 'X' - returning string in uppercase alpha-numericcharacters 返回大写字母数字字符串 ■ 'p', 'P' - returning string in any printable characters.Otherwise the returning string is in uppercase alphacharacters. 返回任意可打印字符的字符串。否则返回的字符串是大写字母。 len : 表示返回的字符串长度。
这篇关于Oracle中常用的的函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-12深入理解 ECMAScript 2024 新特性:Map.groupBy() 分组操作
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势