美文网首页
单行函数

单行函数

作者: Mongy | 来源:发表于2018-04-25 18:30 被阅读0次

    所谓的单行函数就是完成某一具体功能的操作函数,单行函数一共分为一下几种:
    字符串函数、日期函数、数值函数、转换函数、通用函数。
    单行函数的格式:“返回值 函数名称(参数)”

    一、字符串函数

    upper       将传入的字符变为大写字母
    lower       将传入的字符变为小写字母 
    initcap     开头首字母大写,其它是小写
    length      获得指定字符串的长度
    substr      字符串的截取
    replace     将新数据替换旧数据
    

    1.将所有字母转化为大小写

    ① select upper('hello') from emp;
    
    _4$FYWCJCE`}JM(XKXK~50G.png

    此时会有14行,为了方便查询oracle创建了一个虚拟表dual;select upper('hello') from dual;

    _4$FYWCJCE`}JM(XKXK~50G.png

    ②将所有的名字转换为小写

    select lower(ename) from emp;
    

    在不区分大小的情况下统一将字母转换为大写或小写

    select* from emp where ename =upper('&inputname');
    

    ③将雇员姓名以首字母大写的形式保存

    select ename,initcap(ename) from emp;
    

    ④取的字符串长度

    select length('helloworld!') from dual;
    
    select* from emp where length(ename)=5;
    

    ⑤截取字符串
    截取雇员姓名的前三位字母

      select ename,substr(ename,1,3) from emp;
    

    截取每个雇员姓名的后三位字母

    select ename,substr(ename,-3) from emp;
    

    以上截取方式只能在oracle中实现,在程序不能运用此方法。

    也可以使用以下方式截取后三位字母
    select ename,substr(ename,length(ename)-2) from emp;
    

    二、数值函数
    数值函数主要进行数字的处理,最为核心的是主要有三个。

    round   实现数据的四舍五入
    trunc   实现数据的截取
    mod     求模(计算余数)
    
    ①  select round(781.562) from dual;
    
    _round.png

    ②trunc和round区别不大,唯一的区别是不会进位

    select trunc(781.56),trunc(1512.23),trunc(791.5)
    from dual;
    
    _trunc.png

    ③mod

    select mod(10,3) from dual;
    
    _mod.png

    三、日期函数
    1.实现日期的基本操作
    sysdate 只显示当前的日期

    ① select sysdate-7,sysdate+12 from emp;
    
    _date.png

    对于日期而言每个月的天数是不同的,所以直接进行加减运算不是很准确。
    ②查询雇员的编号、姓名、职位、雇用天数

    select empno,ename,job,sysdate-hiredate from emp;
    

    如果直接使用天数来计算年月日,那么最终结果不一定准确。

    2.为了准确的进行日期的计算,oracle里面提供了四个日期函数

    add_months  在指定的日期上增加月数
    months_between 返回两个日期之间的天数
    last_day  取得指定日期所在的月
    next_day  返回下一个指定的月
    

    ①在当前下增加指定的月份

    select add_months(sysdate,4),add_months(sysdate,20)
    from emp;
    
    _add.png

    ②计算雇员到今天为止的雇用月数

    select empno,ename,hiredate,
    months_between(sysdate,hiredate) from emp;
    

    ③计算当期时间所在月的最后一天日期

    select last_day(sysdate) from emp;
    

    ④计算下期的日期

    select next_day(sysdate,'星期二') from emp;
    

    四、转换函数

    字符串  to_char  将日期或数字格式化为指定的字符串
    日期 to_date   按照指定的转换格式编写字符串后将其变为日期型数据
    数字 to_number 将字符串转换为数字
    

    ①将日期,时间显示格式化

    select to_char(sysdate,'yyyy-mm-dd') from dual;
    select to_char(sysdate,'yyyy-mm-dd hh:mi:ss')from dual;
    
    _date.png

    查询2月份的雇员信息

    select* from emp where to_char(hiredate,'mm')=2;
    

    拆份年月日

    select to_char(sysdate,'yyyy'),to_char(sysdate,'mm'),to_char(sysdate,'dd')
    from emp;
    

    ②转日期函数

    select to_date('2018-4-25','yyyy-mm-dd') from emp;
    

    ③转数字函数

    select to_number('2') from dual;
    
    number.png

    oracle中只有字符串的转换最重要,其他都是次要的,数字转换其结果不变。

    相关文章

      网友评论

          本文标题:单行函数

          本文链接:https://www.haomeiwen.com/subject/ymadlftx.html