zoukankan      html  css  js  c++  java
  • Oracle常用函数集锦

    1、wmsys.wm_concat函数

    将列转为行。例子:

    --表里的数据如下
    SQL> select * from idtable;
            ID NAME
    ---------- ------------------------------
            10 ab
            10 bc
            10 cd
            20 hi
            20 ij
            20 mn
    --函数的执行效果
    SQL>select id,wmsys.wm_concat(name) name from idtable group by id;
            ID NAME
    ---------- --------------------------------------------------------------------------------
            10 ab,bc,cd
            20 hi,ij,mn
        
    

    即按id分组,把id相同的name列组合起来,并用英文逗号分隔。

    2、replace函数

    replace(String str, String targetStr [, String aimStr]),将str字符串中的targetStr字符,替换为aimStr字符。

    如果不给出aimStr参数,则函数就会将str字符串中的targetStr字符串删除。如:

    select replace('hello', 'h', 'y') from dual;
    --输出:yello
    select replace('hello', 'h') from dual;
    --输出:ello
    

    3、“||”字符串连接符

    在Oracle中,如果想要将字符串连接起来,那么可以使用“||”符号。如:

    select dummy from dual;
    --输出:X
    select dummy || 'Z' from dual;
    --输出:XZ
    

    4、decode函数

    decode通常用来做判断,其参数格式为:decode(条件,值1,翻译值1,值2,翻译值2,缺省值),它等于我们编程中这样的语句:

    IF 条件=值1 THEN
        RETURN(翻译值1)
    ELSIF 条件=值2 THEN
        RETURN(翻译值2)
        ......
    ELSIF 条件=值n THEN
        RETURN(翻译值n)
    ELSE
        RETURN(缺省值)
    END IF
    

    下面举几个例子:

    select decode('1', '1', 'one', '2', 'two', 'other') from dual;
    --1.输出:one
    select decode('2', '1', 'one', '2', 'two', 'other') from dual;
    --2.输出:two
    select decode('1', '1', 'one', '1', 'two', 'other') from dual;
    --3.输出:one (遇到第一个值匹配之后,就不再进行匹配了,验证了是IF..ELSE IF..ELSE的语法)
    

    5、sign(n)函数

    若n=0,则返回0。否则,n>0,则返回1。n<0,则返回-1。

    select sign(12) from dual; 
    --输出:1
    

    6、ceil(n) 

    返回结果是大于等于输入参数的最小整数

    select ceil(10.5) from dual;
    --输出:11
    

    7、floor(n)

    返回结果是小于等于输入参数的最大整数

    select floor(9.3) from dual;
    --输出:9
    

    8、round(n)

    四舍五入

    SELECT round(100.51515),round(99.2343) from dual;
    --输出:101 99
    

    9、TRUNC(n, integer)

    截取数值的函数。integer为正整数,表示截取几位小数。integer为负整数,则截取小数点左几位。如果integer为小数,则函数会忽略小数部分。

    比如当integer为3.25时,函数将会按3去截取。

    select trunc(1222.23456,2), trunc(1222.23456, -1), trunc(1222.23456, 2.56) from dual;
    --1222.23   1220   1222.23
    

    10、TRUNC(sysdate, varchar)

    对日期进行截取, varchar字符表示精确到的位数(大小写不影响结果,如:mm与MM结果一样)

    --现在时间是:2014年10月29日 18:35:09
    --精确到年。  输出结果:2014/1/1
    select trunc(sysdate ,'yyyy') from dual ;  
    --精确到月    输出结果:2014/10/1
    select trunc(sysdate ,'mm') from dual ;  
    --精确到日    输出结果:2014/10/29
    select trunc(sysdate ,'dd') from dual ;  
    --精确到小时  输出结果:2014/10/29 18:00:00
    select trunc(sysdate ,'hh') from dual ;   
    --精确到分钟  输出结果:2014/10/29 18:38:00
    select trunc(sysdate ,'mi') from dual ; 

    精确到秒的暂时不知道。

  • 相关阅读:
    Java并发编程(二)线程任务的中断(interrupt)
    Java并发编程(一) 两种实现多线程的方法(Thread,Runnable)
    青蛙跳台阶(Fibonacci数列)
    旋转数组的最小值
    用两个栈实现队列
    重建二叉树
    二维数组中的查找
    Lab 3-1
    Lab 1-4
    Lab 1-3
  • 原文地址:https://www.cnblogs.com/chanshuyi/p/3990977.html
Copyright © 2011-2022 走看看