Oracle中的单值函数_第1页
Oracle中的单值函数_第2页
Oracle中的单值函数_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle中的单值函数Oracle的函数Oracle函数可以分为单值函数和分组函数两大类,单值函数又分为字符函数、日期和时间函数、数字函数、转换函数和混合函数:分组函数右count、max、min、avg、sum,都可以和groupby搭配使用。单值函数字符函数字符串连接函数问题:把员工的姓名和工作类型连在一起使用"-"分隔函数:concat(字符串1,字符串2)selectconcat(concat(ename,'-'),job)fromemp; 扩展点:字符串连接符号"||"selectename||'-'||jobfromemp;右对齐函数问题:将员工的姓名右对齐显示函数:lpad(待处理的字符串,预留位置,填充符号)selectlpad(ename,10,'')fromemp;字符串截取函数问题:截取员工姓名的前3个字符和字符4以后的内容显示函数:substr(字符串,起始位置,截取的个数)substr(字符串,起始位置)--默认截取到最后selectename,substr(ename,1,3),substr(ename,4)fromemp;字符查找函数问题:字母'T'在员工姓名中第一次出现和第二次出现的位置函数:instr(字符串,查找的字符,查找的起始位置,出现的次数)selectename,instr(ename,'T',1,1)asA,instr(ename,'T',1,2)asBfromemp;扩展:员工姓名中不含M的员工selectenamefromempwhereinstr(ename,'M',1,1)=0首字母大写函数问题:员工姓名首字母大写显示函数:initcap(字符串)selectinitcap(ename)fromemp;小/大写函数问题:将员工姓名大写转换函数:upper(字符串)/lower(字符串)selectupper(ename),lower(ename)fromemp;字符串替换函数问题:将姓名中的M全部替换成'*'显示函数:replace(字符串,带替换的字符,替换后的字符)selectreplace(ename,'M','*')fromemp;字符串长度函数问题:找出姓名长度大于5的员工姓名函数:length(字符串)selectenamefromempwherelength(ename)>5;日期函数系统时间问题:返回系统的当前时间函数:sysdate说明:1、函数没有“()”2、dual是一张无意义的表,在Oracle专门用于函数的测试selectsysdatefromdual;使用一个to_char,转换函数类型将时间类型转成字符类型函数:to_char(时间数据,格式)selectto_char(sysdate,'yyyy-mm-ddhh:mi:ss')fromdual;格式:yyyy年mm月dd日期d一周中的第几天ddd一年中的第几天day周month月份hh2424小时制日期修改函数问题:将系统时间添加2个月显示函数:add_months(时间数据,添加的月份)selectadd_months(sysdate,2)fromdual; 日期差函数问题:显示员工入职时间的月份统计函数:months_between(时间1,时间2)selectename,hiredate,months_between(sysdate,hiredate)fromemp;转换函数to_char()见上例时间转换函数函数:to_date(时间数据字符串,格式)insertinto表名values(to_date('2009-12-12','yyyy-mm-dd'));案例1:查询在12年前参加工作的员工Selectename,hiredatefromempwheremonths_between(sysdate,hiredate)>144案例2:查询在当月倒数第三天参加工作的员工函数:last_day(时间数据)->返回该日期所在月份的最后一天selectename,hiredatefromempwherelast_day(hiredate)-2=hiredate;案例3:查询每个员工的工作天数格式:时间1-时间2-->返回相差的天数selectename,hiredate,sysdate-hiredatefromemp;数学函数round(数字)四舍五入案例:按每月30天计算员工的每日薪水,要求计算结果四舍五入到小数点后2位函数:round(数字,精度)selectename,round(sal/30,2)fromemp;trunc(数字)取整函数->只保留整数部分案例:查询员工工作了多少个月selectename,trunc(months_between(sysdate,hiredate))fromemp;floor(数字)向下取floor(1.9)->1ceil(数字)向上取

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论