zoukankan      html  css  js  c++  java
  • Oracle数据库常用函数汇总

    数据库函数集

     

    一、substr截取字符串函数

    格式1: substr(string , a,  b);

    注:string为字符串类型,a和b为int类型
    1、string 需要截取的字符串
    2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
    3、b 要截取的字符串的长度

    格式2:substr(string, a);

    1、string 需要截取的字符串
    2、a 可以理解为从第a个字符开始截取后面所有的字符串。

    二、nvl函数处理空值

    1、nvl(str1,str2)
    如果str1为空则返回str2
    2、nvl(str1,str2,str3)
    如果str1位空则返回str3,如果不为空则返回str2
     

    三、trim函数字符串去空格

    1LTRIM(str):将字符串左边的空格移除。
    2RTRIM(str): 将字符串右边的空格移除。
    3、TRIM(str): 将字符串首尾两端的空格移除。

    四、ROUND()处理数字四舍五入

    语法:ROUND(number,num_digits)
    其中Number是需要进行四舍五入的数字;Num_digits为指定的位数,按此位数进行四舍五入,
    select round(sum (a.long_time)/3,0) r0 from dual; 
     

    五、trunc()截取日期/截取数字类型

    1.【trunc(for dates)】TRUNC()函数处理日期

    语法格式:TRUNC(date[,fmt])
    其中:date 一个日期值;fmt 日期格式。
    如:
    select trunc(sysdate,'YY-MM-DD') from dual

    2.【TRUNC(for number)】TRUNC()函数处理number型数字

    语法格式:TRUNC(number[,decimals])
    其中: number 待做截取处理的数值;decimals 指明需保留小数点后面的位数,可选项,忽略它则截去所有的小数部分。
    注意:截取时并不对数据进行四舍五入。
    如:
    select trunc(123.567,2) from dual;--123.56,将小数点右边指定位数后面的截去;
    select trunc(123.567,-2) from dual;--100,第二个参数可以为负数,表示将小数点左边指定位数后面的部分截去,即均以0记;
    select trunc(123.567) from dual;--123,默认截去小数点后面的部分;

    六、逻辑判断 case when ...then ...else...end

    (case when 判断1 then 结果1 else 结果2 
    when 判断2 then 结果1 else 结果 2 
    ...
    end )
     

    七、分组排序函数

    1.row_number() over()

    row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,
    而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。
    如:select t.*,row_number() over(partition by accno order by createDate) row_number from Test t 

    2.rank() over()

    rank()是跳跃排序,有两个第二名时接下来就是第四名。
    如:select t.*,rank() over(partition by accno order by createDate) rank from Test t 

    3.dense_rank() over()

    dense_rank()也是连续排序,有两个第二名时仍然跟着第三名。
    select t.*,dense_rank() over(partition by accno order by createDate) dense_rank from Test t 
    列:取出前四条申请的数据
    select 
    createDate,
    accno,
    money,
    num
    from 
    (select t.*,row_number() over(partition by accno order by createDate) num from Test t) t1 
    where num<4 

    八、DECODE()函数用法:重新赋值

    1.decode(条件,值1,赋值11,值2,赋值2,...赋值n,赋值n,x)
    函数含义:
    IF 条件=值1 THEN
        RETURN(赋值1)
    ELSIF 条件=值2 THEN
        RETURN(赋值2)
        ......
    ELSIF 条件=值n THEN
        RETURN(赋值n)
    ELSE
        RETURN(赋值x)
    END IF
    如:
    SELECT ID,DECODE(inParam,'para1','值1',
        'para2','值2',
        'para3','值3',
        'para4','值4',
        'para5','值5',
        'para6') name FROM bank
    对inParam进行判断,如果值为'para1'则重新赋值为‘值1’
    如果不在判断范围内的值则赋值为‘para6’

    待更新......

    被狗吃掉的那几年
  • 相关阅读:
    Mac下好玩的终端命令
    【bzoj3441】乌鸦喝水
    LeetCode[39]: 组合总和
    打击盗版,支持原创
    状态模式(State)-设计模式
    webpack核心概念
    吴裕雄--天生自然TensorFlow高层封装:Estimator-自定义模型
    吴裕雄--天生自然TensorFlow高层封装:Estimator-DNNClassifier
    吴裕雄--天生自然TensorFlow高层封装:Keras-TensorFlow API
    吴裕雄--天生自然TensorFlow高层封装:Keras-多输入输出
  • 原文地址:https://www.cnblogs.com/wangdecheng/p/12195883.html
Copyright © 2011-2022 走看看