oracle各种基本函数查询
来源:互联网 发布:南风知我意琰阙 编辑:程序博客网 时间:2024/05/14 09:39
oracle函数:--数值函数--字符函数--日期函数--转换函数----------------------------------------------数值函数:--四舍五入:--ROUND(n,m)--m>0:小数点后m位 m<0:小数点前m位select round(2222.222), round(2222.222, 1), round(2222.222, -1) from dual--结果:22222222.22220--取整函数--1.ceil(n)取整加1 2.floor(n)取整减1select ceil(2222.222), floor(2222.222) from dual--结果:22232222--常用计算--1.abs(s):取绝对值 select abs(2222.222), abs(-2222.222), abs(0) from dual--结果:2222.2222222.2220--2.mod(m,n) 取余数 m/n的余数,如果m或n为null,结果则为nullselect mod(2222.222,2) from dual--结果:0.222--3.power(m,n) 返回m的n次幂select power(2,3) from dual--结果: 8 (2的三次方)--4.sqrt(n) 求平方根select sqrt(16) from dual--结果:4 --三角函数--sin(n),asin(n),cos(n),acos(n),tan(n),atan(n)----------------------------------------------字符函数:--1.大小写转换函数--upper(char)小写变大写 lower(char)大写变小写 initcap(char)首字母大写select upper('zhanghaochun'), lower('ZHANGhaochun'), initcap('zhanghaochun') from dual--结果:ZHANGHAOCHUNzhanghaochunZhanghaochun--应用场景:登录时不区分大小写--2.获取子字符串函数--substr(char,m,n) m:取子串的开始位置 n:截取子串的位数select substr('zhanghaochun', 6, 3) from dual--结果:hao (从第6个开始截取,截取3个)--3.获取字符串长度函数--length(char)select length('zhanghaochun') from dual--结果:12--应用场景:查找名字超过三个的人的信息--4.字符串连接函数--concat(char1,char2)--与||操作符的作用一样select concat('中华', '人民'), '中华' || '人民' from dual--结果:中华人民中华人民--5.去除子串函数--5.1:trim(c2 from c1) 表示从c1中去除掉 c2 这个字符串select trim('z' from 'zhanghaochun') from dual;--结果:hanghaochun 仅能截取掉一个字符,第一个字符--5.2:ltrim(c1,c2) 从左边去除--5.3:rtrim(c1,c2) 从右边去除--5.4:trim(c1) 去除两边的空格--6.替换函数--replace(char,s_string1,s_string2) s1:需要替换的内容 s2:替换成什么内容--s_string2为空时,默认用空格替换select replace(' ', 'a', 'A') from dual;--结果:AAbbAAccAAdd 将a换成A----------------------------------------------日期函数:--系统时间--sysdateselect sysdate today from dual;--结果:2017/5/22/周一 15:46:42--日期操作--1.add_months(date,i) i:想要加上几个月,为整数。如果是小数,则截取整数部分--作用:正数:返回在指定日期上增加几个月份 负数:返回在指定日期上减少几个月份select add_months(sysdate, 3), add_months(sysdate, -3) today from dual;--结果:2017/8/22/周二 15:55:392017/2/22/周三 15:55:39--2.next_day(date,char)--作用:如果char的值是'星期一',则返回date指定日期的下周一是哪天select sysdate, next_day(sysdate, '星期一') from dual;--结果:2017/5/22/周一 16:04:53 2017/5/29/周一 16:04:53--3.last_day(date)--作用:返回所在月的最后一天select sysdate, last_day(sysdate) from dual;--结果:2017/5/22/周一 16:09:142017/5/31/周三 16:09:14--4.months_between(date1,date2)--作用:计算两个日期之间相隔的月份select months_between(add_months(sysdate, 12), sysdate) from dual;--结果:12 等同于两个日期的值直接相减--5.extract(date from datetime)--作用:从datetime里找出date的时间select sysdate,--2017/5/22/周一 16:23:36 extract(year from sysdate),--2017 extract(month from sysdate),--5 extract(day from sysdate)--22 from dual;--结果:2017/5/22/周一 16:23:362017 522--hour minites --统计季度----------------------------------------------转换函数:--1.日期转换成字符--to_char(date,fmt) date:将要转换的日期 fmt:转换的格式select to_char(sysdate, 'yyyy-MM-dd HH24:MI:ss') from dual;--结果:2017-05-23 09:37:25--2.字符转换成日期--to_date(char,fmt) char:要转换的字符串 fmt:转换的格式select to_date('2017-05-23', 'yyyy-MM-dd') from dual;--结果:2017/5/23/周二 只会按照系统默认格式显示日期--3.数字转换成字符--to_char(number,fmt) number:所要转换的数字类型数据 fmt:所要的格式数据select to_char(123456.789, '$999,999.999') from dual--结果: $123,456.789select to_char(123456.789, 'S999,999.999') from dual--结果:+123,456.789--4.字符转换成数字--to_number(char,fmt) char:想要转换的字符 fmt:想要的格式 select to_number('$1,000','$9999') from dual;--结果:1000--fmt日期格式:--年:YY YYYY YEAR--月:MM MONTH--日:DD DAY--时:HH24 HH12--分秒:MI SS--fmt数字转字符格式:--9:显示数字并忽略前面的0--0:显示数字,位数不足,用0补齐--. 或 D:显示小数点--,或 G:显示千位符--$:美元符号--S:加正负号(前后都可以)--其他函数:--nvl(a,b)--如果a为空,则显示b,如果不为空,则显示a--类似于三元运算符select nvl('','数据为空') from dual;--结果:数据为空--场景:--当执行插入数据时,字段约束不能为空,就可以用该函数给一个默认值--DECODE(value,if1,then1,if2,then2,if3,then3,...,else)select decode(100,10,'值是10','30','值为30','50','值为50','10000') from dual;--结果:10000--switch(value){if1:then1;if2:then2;if3:then3;else}--场景:--执行复杂判断的时候可以用到--case when if1 then end1 else default endselect case when 100 = 10 then '值为10' when 100 = 100 then '值为100' when 100 = 1000 then '值为1000' else '默认值' end from dual;--结果:值为100--场景,执行复杂判断时--运用例子(统计符合特定条件的费用信息)sum(case when d.bka432 not in ('101','102') and d.bka078 in('C001','C002','C003') and d.aaa157 = '999' then d.aae019 else 0 end ) BKE108--统筹支付费用
阅读全文
0 0
- oracle各种基本函数查询
- oracle基本函数和查询
- Oracle(二)函数,与各种连接查询
- Oracle各种查询
- Oracle各种查询
- oracle各种查询语句
- Oracle基本查询
- Oracle 基本数据查询
- ORACLE基本查询
- Oracle基本查询
- Oracle基本查询
- ORACLE SELECT基本查询
- Oracle基本查询 二
- Oracle基本查询 一
- Oracle的基本查询
- oracle基本查询语句
- oracle 基本查询
- Oracle基本查询
- Redux框架简介
- Python 格式化字符串
- 基于Python语言使用RabbitMQ消息队列(一)
- 5-Python-文件操作、异常、模块
- 整理Windows下用vs2010写的简单看门狗
- oracle各种基本函数查询
- margin在文档流和浮动中的区别
- JavaWeb三大组件之一Servlet【Servlet细节】
- 网络获取图片高度和宽度
- iOS Base64编码
- 网上资源交易系统(ssm)
- LeetCode 38 Count and Say
- ES6 Object.assign()
- HTML标签速查列表