设为首页 收藏本站
查看: 859|回复: 0

[经验分享] Oracle中单行函数的分类

[复制链接]

尚未签到

发表于 2016-7-27 11:18:36 | 显示全部楼层 |阅读模式
  Oracle 数据库中单行函数的分类:
  1、字符函数:接收字符输入并返回字符或数值;
  1)substr() --- 字符串截取,如:SELECT substr('Hello', 1, 3) FROM dual;
  2)length() --- 字符串长度,如:SELECT length('hello') FROM dual;
  3)replace() --- 字符串内容的替换,如:SELECT replace('Hello', 'e', 'm) FROM dual;
  4)upper() ---- 把小写字母转换成大写字母,如:SELECT upper('hello') FROM dual;
  5)lower() --- 把大写字母转换成小写字母,如:SELECT lower('HELLO') FROM dual;
  6)initcap() ---- 把单词转换成首字母大写的形式(不论单词是何种写法),如:SELECT initcap('HELLO world') FROM dual;
  2、数值函数:接收数值输入并返回数值;
  1)四舍五入函数 ---- round(),如:
  a)SELECT round(789. 536)FROM dual; 默认只保留整数位;
  b)SELECT round(789.536, 2) FROM dual; 保留两位小数;
  c)SELECT round(789.536, -2) FROM dual; 四舍五入整数位。
  2)截断小数位函数 ---- trunc(),如:
  a)SELECT trunc(789.536) FROM dual; 默认只保留整数位,并且小数位不做四舍五入运算;
  b)SELECT trunc(789.536, 2) FROM dual; 保留两位小数,小数位不做四舍五入运算;
  c)SELECT trunc(789.536, -2) FROM dual; 在整数位从低位向高位舍弃,位数上的数字大于5同样被舍弃,做0看待。
  3)求余(取模)函数 --- mod(),如:SELECT mod(10, 3) FROM dual; 注意:分母不可为零哦!
  3、日期函数:对日期型数据进行操作(重点);
  A)Oracle 中的日期与数字的一些规律:
  a)日期 - 数字 = 日期;
  b)日期 + 数字 = 日期;
  c)日期 - 日期 = 数字(表示天数);
  B)函数:
  a)months_between() ---- 求出指定范围的月数,如:SELECT empno, ename,round(months_between(sysdate, hiredate)) FROM emp;
  b)add_months() --- 在指定的日期上加上指定的月数,如:SELECT add_months(sysdate, 3) FROM dual;
  c)next_day() ----求取和本周星期数相同的下周的星期数是几号,如:SELECT last_day(sysdate, '星期日') FROM dual;
  d)last_day() --- 求取本月的最后一天是几号,如:SELECT last_day(sysdate) FROM dual;
  e)round();
  f)trunc();
  4、转换函数:从一种数据类型转换成另一种数据类型;
  A)日期通配符的一点介绍:
  1)年:y,年是四位数字,故使用 yyyy 表示年;
  2)月:m,月是两位数字,故使用 mm 表示月;
  3)日:d,日是两位数字,故使用 dd 表示月;
  B)函数:
  1)to_char() ---- 转换成字符串,如:
  SELECT empno, ename, to_char(hiredate, 'yyyy') year , to_char(hiredate, 'mm') month , to_char(hiredate, 'dd') day FROM emp; 此实例完成日期的拆分工作,即分别取出年、月、日,用于格式化使用。
  SELECT empno, ename, to_cjhar(hiredate, 'yyyy-mm-dd') FROM emp; 完成日期的本地化;
  SELECT empno, ename, to_cjhar(hiredate, 'yyyy-mm-dd') FROM emp; 去掉前导 0,完成日期的本地化。
  SELECT empno, ename, to_char(sal, '99,999') FROM emp; 工资显示时每个三位加一个逗号,占位符只能使用数字 9 。
  SELECT empno, ename, to_char(sal, '$99,999') FROM emp; 以美元的形式显示工资。
  SELECT empno, ename, to_char(sal, 'L99,999') FROM emp; 本地化工资格式,“L” 或 “l” 为 "local“ 的缩写,以为本地化。
  2)to_number() --- 转换成数字,如:
  SELECT TO_NUMBER('123') + TO_NUMBER('789') FROM dual; 把字符串“123”和字符串“789”转换成数字后进行四则运算。
  3)to_date() --- 转换成日期。
  SELECT TO_DATE('2011-01-10', 'yyyy-mm-dd') FROM dual; 把字符串日期格式转换成 Oracle 内置的日期格式。
  5、通用函数:NVL函数、DECODE函数。
  1)NVL() 函数用于把一个变化的值设置另一个默认值,常用语四则计算时把空值 NULL 设置为 0 ,示例如下:
  SELECT empno, ename, NVL(comm, 0), (sal + NVL(comm, 0)) * 12 income FROM emp;
  2)DECODE() 函数类似于 if...else if...else 语句,用于依次逐个匹配数据并计算结构,如:
  SELECT DECODE(1, 1, '内容为 1', 2, '内容为 2', 3, '内容为 3') FROM dual;
  SELECT empno 员工编号, ename 员工姓名, hiredate 聘用日期, DECODE(job, 'CLERK', '业务员', 'SALESMAN', '销售员', 'MANGER', '经理', 'PRESIDENT', '总裁') 职位 FROM emp;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-250229-1-1.html 上篇帖子: 开发人员常用的Oracle技术 下篇帖子: Oracle import命令使用浅解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表