• Oracle——常用的几种函数(含案例)


    前言

    Oracle函数类使用不够熟练,特做总结归纳。

    数值型函数

    函数含义示例结果
    ceil(n)大于或等于数值n的最小整数(向上取整)select ceil(10) from dual;
    select ceil(10.1) from dual;
    10
    11
    floor(n)小于等于数值n的最大整数(向下取整)select floor(10) from dual;
    select floor(10.1) from dual;
    10
    10
    mod(m,n)m除以n的余数,若n=0,则返回mselect mod(10,3) from dual;
    select mod(10,2) from dual;
    select mod(10,0) from dual;
    1
    0
    10
    power(m,n)m的n次方select power(2,2) from dual;
    select power(2,3) from dual;
    select power(2,0) from dual;
    4
    8
    1
    round(n,m)将n四舍五入,保留小数点后m位select round(13.55555,3) from dual;13.556
    sign(n)n>0,则返回1,
    n=0,则返回0,
    n<0,则返回-1
    select sign(2) from dual;
    select sign(0) from dual;
    select sign(-2) from dual;
    1
    0
    -1
    sqrt(n)n的平方根select sqrt(25) from dual;
    select sqrt(3) from dual;
    5
    1.73205080756888
    abs(n)计算n的绝对值SELECT ABS(-11.1) FROM dual;
    SELECT ABS(3.5) FROM dual;
    11.1
    3.5

    字符串函数

    函数含义示例结果
    trunc(m,n)数据截取
    n如果是日期标识,则截取日期
    n如果是数字,则截取长度。
    select trunc(to_date(‘2022-08-31’,‘YYYY-MM-DD’),‘YYYY’) from dual;
    select trunc(to_date(‘2022-08-31’,‘YYYY-MM-DD’),‘MM’) from dual;
    select trunc(to_date(‘2022-08-31’,‘YYYY-MM-DD’),‘DD’) from dual;
    select trunc(13.555555,3) from dual;
    2022/1/1
    2022/8/1
    2022/8/31
    13.555
    substr(char,m,n)字符串截取
    m表示起始下标
    n表示长度
    select substr(‘xiangjiao’,0,5) from dual;xiang
    CONCAT (char1, char2)两个字符的拼接select CONCAT ('xiangjiao ', ‘bunana’) from dual;xiangjiao bunana
    initcap(char)字符串首字母大写select initcap(‘xiangjiao’) from dual;Xiangjiao
    lower(char)所有字符串字符小写转换select lower(‘XIANGJIAO’) from dual;xiangjiao
    UPPER(string)所有字符大写select upper(‘xiangjiao’) from dual;XIANGJIAO
    replace(char,str1,str2)char中的str1字符替换成str2select replace(‘xiangjiao is bunana’,‘bunana’,‘banana’) from dual;xiangjiao is banana
    length(char)计算字符串长度select length(‘xiangjiao’) from dual;9
    nvl(d,m)空值替换select nvl(null,0) from dual;
    select nvl(2,0) from dual;
    0
    2
    decode(d,a,b,c)值对比替换
    如果d == a,则输出b,否则输出c
    select decode(‘400030’,‘400030’,‘66666’,‘9999999’) from dual;
    select decode(‘111111’,‘400030’,‘66666’,‘9999999’) from dual;
    66666
    9999999
    双竖线并置运算符(字符拼接)

    在这里插入图片描述

    markdowm语法干扰,最后一个案例以截图展示。

    日期函数

    函数含义示例结果
    sysdate获取系统时间select sysdate from dual;2022/8/31 18:39:40
    last_day月份的最后一天select last_day(sysdate) from dual;
    select last_day(date’2022-07-15’) from dual;
    2022/8/31 18:42:08
    2022/7/31
    add_months(d,n)月份增加n后的日期
    n为正数,表示向后推
    n为负数,表示前推
    select add_months(date’2022-07-15’,5) from dual;
    select add_months(date’2022-07-15’,0) from dual;
    select add_months(date’2022-07-15’,-6) from dual;
    2022/12/15
    2022/7/15
    2022/1/15
    months_between(d,n)两个日期间隔月数(注意d和n的顺序)select months_between(date’2022-04-15’,date’2022-07-1’) from dual;
    select months_between(date’2022-07-1’,date’2022-04-15’) from dual;
    -2.54838709677419
    2.54838709677419

    获取集合中最大值最小值

    函数含义示例结果
    least获取集合中的最小值select least(2,4,1,5) from dual;1
    greatest获取集合中的最大值select greatest(2,4,1,5) from dual;5

    扩展:

    这里的集合数据,不一定非要是整数型!

    如:获取日期集合中的最小值。

    select 
    least(to_date('2022-09-03','YYYY-MM-DD'),
    	to_date('2022-09-01','YYYY-MM-DD'),
    	to_date('2022-09-20','YYYY-MM-DD')) 
    from dual;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    trunc 函数

    trunc函数,通常用于字段、数据、日期等的截取。常见的几种使用方式如下所示:

    截取日期

    描述sql结果
    获取年初时间select trunc(date’2022-12-12’,‘YYYY’) from dual;2022-01-01
    获取月份第一天select trunc(date’2022-12-12’,‘MM’) from dual;2022-12-01
    获取指定日期的年月日select trunc(date’2022-12-12 12:07:34’,‘dd’) from dual;2022-12-12
    获取指定日期所在星期的第一天(星期天)select trunc(date’2022-12-12 12:07:34’,‘d’) from dual;2022-12-11
    获取当前日期所在季度的第一天日期select trunc(date’2022-12-12 09:07:34’,‘Q’) from dual;2022-10-01

    【扩展】获取日期所在的季度

    select to_char(date'2022-12-12 09:07:34','Q') from dual; 
    
    • 1

    4

    截取数字

    trunc截取数字,可以保留小数后几位等操作。

    但需要注意的是:不会四舍五入

    描述sql结果
    默认截取整数SELECT trunc(2345.678) FROM dual;2345
    截取小数点后一位SELECT trunc(2345.678,1) FROM dual;2345.6
    截取小数点前一位SELECT trunc(2345.678,-1) FROM dual;2340
  • 相关阅读:
    React hooks(一):useState
    haoop启动正常,但上不去网页hadoop102:9870
    【华为IP阶段OSPF3】--- 四类特殊区域及OSPF协议特性
    黑马JVM总结(十四)
    房产中介管理系统,房产中介预约看房系统,看房预约系统毕设作品
    MongoDB学习笔记
    ES6-类--【面向对象编程思想】
    Spring - BeanPostProcessors 扩展接口
    MySQL 快速入门之第一章 账号管理、建库以及四大引擎
    java计算机毕业设计物流企业健康管理系统源代码+数据库+系统+lw文档
  • 原文地址:https://blog.csdn.net/qq_38322527/article/details/126629406