代码改变世界

单行函数

2018-04-14 13:07  猪牙哥  阅读(422)  评论(0编辑  收藏  举报

单行函数:字符函数、数值函数、日期函数、转换函数、通用函数、条件表达式函数

Ⅰ、字符函数:大小写控制函数(Lower、Upper、Initcap),字符控制函数(Concat、Substr、Length/Lengthb、Instr、Lpad|Rpad、Trim、Replace)

  1、大小写控制函数

    ①Lower:转小写

      lower(arg) 的参数含义:将arg全部小写

      

    ②Upper:转大写

      upper(arg) 的参数含义:将arg全部大写

      

    ③Initcap:首字母大写

      initcap(arg) 的参数含义:将arg的首字母小写

      

  2、字符控制函数

    ①Concat:字符串连接

      concat(c1,c2)的参数含义:将c1和c2连接起来

      

    ②Substr:取字符串的字串

      substr(a,b,c)的参数含义:从字符串a的第b位(包括第b位)开始取c个字符

      

    ③Length/Lengthb:字符数/字节数

      length(arg)/lengthb(arg) 的参数含义:获取字符数/字节数

      

      

    ④Instr:在字符串中查找另外一个字符串

      instr(a,b) 的参数含义:从字符串a查找字串b的位置,如果查找不到返回0

      

      

    ⑤Lpad|Rpad:左填充|右填充

      lpad(a,b,c) | rpad(a,b,c) 的参数含义:从字符串a的长度小于b,则以字符c填充左 | 右,如果字符串的长度大于b,则从左到右取b个字符

      

      

    ⑥Trim:去掉前后指定的字符

      trim( a from b) 的参数含义:去掉b中以a字符开头的字符,注意a只能是一个字符

      

    ⑦Replace:替换

       replace(a,b,c) 的参数含义:用c替换a中的b

      

Ⅱ、数值函数:Round、Trunc、Mod

  ①Round:四舍五入

    Round(a,b) 的参数含义:将数值为a进行四舍五入,精度为b

    

  ②Trunc:截断

    Trunc(a,b) 的参数含义:将数值为a的精度设置为b

    

  ③Mod:求余

    Mod(a,b) 的参数含义:得到a除以b的余数

    

Ⅲ、日期函数

  1、oracle中的日期:

    oracle中的日期型数据实际含有两个值:日期和时间

    默认的日期格式是  DD-MON-RR

    

    

  2、日期的数学运算

    在日期上加上或减去一个数字结果仍为日期

      

    两个日期相减返回日期之间相差的天数

      --计算员工的工龄:天  星期  月  年

      

  3、日期函数

      函数          描述

    Months_between    两个日期相差的月数

    Add_months      向指定日期中加上若干月数

    Next_day        指定日期的下一个日期

    Last_day         本月的最后一天

    Round          日期四舍五入

    Trunc         日期截断

    

    months_between(a,b) 的参数含义:a和b之间相差的月数

    

    add_months(a,b) 的参数含义:a是日期,b是要加上的月份数

     

    next_day(a,b) 的参数含义:a日期的下一个日期,可以是1~7,也可以是英文,比如TUESDAY

    

    last_day(a) 的参数含义:日期a该月的最后一天日期

    

    round(a,b) 的参数含义:a日期,b精度

    

    trunc(a,b) 的参数含义:a日期,b截取时的精度

    

Ⅳ、转换函数

  1、显示数据类型转换

    

    ①、to_char函数对日期的转换

      to_char(date,'format_model')

      日期的格式:

        格式          说明                  举例

        YYYY    Full year in numbers                2011

        Year      Year spelled out(年的英文全称)            twenty eleven

        MM     Two-digit value of month 月份(两位数字)        04

        Month    Full name of the month(月的全称)           4月

        DY      Three-letter abbreviation of the day of the week     星期一

        DAY      Full name of the day of the week           星期一

        DD      Numeric day of the month              02

       --2018-04-14 11:10:40今天是星期六

      

    ②、to_char函数对数字的转换

      to_char(number,format_model)

      数字转换的格式:

        9      数字

        0      零

        $      美元符

        L      本地货币符号

        .      小数点

        ,      千位符

      --查询员工的薪水:两位小数、千位符、本地货币代码

      

Ⅴ、通用函数:适用于任何数据类型,同时也适用于空值

  常用的通用函数:nvl、nvl2、nullif、coalesce

    ①nvl(a,b) 的参数含义:当a为null的时候取b值

      

    ②nvl2(a,b,c) 的参数含义:当a为null的时候,返回c,否则返回b

      

    ③nullif(a,b) 当a=b的时候,返回null,否则返回a

      

    ④coalesce(a,b,...) 从左到右 找到第一个不为null的值

       

Ⅵ、条件表达式:在SQL语句中使用IF-THEN-ELSE

  1、实现方式

    ①Case表达式:SQL99的语法,类似Basic,比较繁琐

      case expr when comparison_expr1 then return _expr1

          [ when comparison_expr2 then return_expr2

            when comparison_exprn then return_exprn

            else else_expr ]

      end

      --给员工涨工资,总裁1000 经理800 其他400

      

    ②Decode函数:Oracle自己的语法,类似java,比较简介

       decode(col|expression,search1,result1

                 [,search2,result2,...,]

                 [,default])