<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    piliskys

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      25 隨筆 :: 0 文章 :: 40 評論 :: 0 Trackbacks
    Oracle已經(jīng)內建了許多函數(shù),不同的函數(shù)有不同的作用和用法,有的函數(shù)只能作用在一個記錄行上,有的能夠作用在多個記錄行上,不同的函數(shù)可能處理不同的數(shù)據(jù)類型。常見的有兩類,單行函數(shù)和分組函數(shù) 。

    單行函數(shù):

    單行函數(shù)

    分類 函數(shù) 功能 示例
    字符函數(shù) LPAD(<c1>,<i>[,<c2>]) 在字符串c1的左邊添加字符串c2直到c1字符串的長度等于i

    SELECT  LPAD(‘Hello!’,8,’ ’) leftpad,RPAD(‘Hello!’,8,’ ’) rightpad

    FROM DUAL;

     

    RPAD(<c1>,<i>[,<c2>]) 在字符串c1的右邊添加字符串c2直到c1字符串的長度等于i
    LOWER(<c1>) 把字符串c1轉換為小寫 SELECT LOWER(ename)  one,UPPER(ename) two, INITCAP(ename) FROM EMP;
    UPPER(<c1>) 把字符串c1轉換為大寫
    INITCAP(<c1>) c1字符串的每一個單詞的第一個字母轉換成大寫字母
    LENGTH(<c1>) 返回字符串c1的長度 SELECT LENGTH(‘How are you’) FROM DUAL;
    SUBSTR(<c1>,<i>[,<j>]) 返回字符串c1中從第i個位置開始的j個字符(向右)。如果省略j,則返回c1中從第i個位置開始的所有字符。如果j為負,則返回字符串c1中從第i個位置開始的j個字符(向左)。 SELECT SUBSTR(‘Hello,World’,1,5) FROM DUAL;
    INSTR(<c1>,<c2>[,<i>[,<j>]]) c1中從位置i開始查找c2c1中出第j次的位置,i可以為負(此時,從c1的尾部開始)

    SELECT INSTR(‘Mississippi’,’i’,3,3) FROM DUAL; 返回結果11

    SELECT INSTR(‘Mississippi’,’i’,-2,3) FROM DUAL; 返回結果2

     

    LTRIM(<c1>,<c2>) c1前面開始去掉出現(xiàn)在c2的中任何前導字符集。 SELECT LTRIM(‘Mississippi’,’Mis’) FROM DUAL; 返回結果’ppi’。

    SELECT RTRIM(‘Mississippi’,’ip’) FROM DUAL; 返回結果’Mississ’。
     
    RTRIM(<c1>,<c2>) c1后面開始去掉出現(xiàn)在c2的中任何前導字符集。
    數(shù)學函數(shù) ABS(<n>) 返回n的絕對值 SELECT ABC(-2),ABS(2) FROM DUAL;
    ROUND(<n1>,<n2>) n1的小數(shù)點后保留n2位(四舍五入)并返回。如果n2小于零,n1舍入到小數(shù)點左邊。

    SELECT ROUND(12345.678,-2),

    ROUND(12345.678,2)

     FROM  DUAL;

    分別返回結果:1230012345.68

     

    CEIL(<n>) n 向上取整,并返回。

    SELECT CEIL(5.1),CEIL(-21.4) FROM  DUAL;

    分別返回:6, -21

     

    FLOOR(<n>) n 向下取整,并返回。

    SELECT FLOOR(5.1),FLOOR(-21.4) FROM  DUAL;

    分別返回:5, -22

     

    MOD(<n1>,<n2>) 返回n1n2后的余數(shù)。

    SELECT MOD(14,5),MOD(8,25),MOD(-64,7) FROM DUAL;

    分別返回結果:40.5-1

     

    SIGN(<n>)

    符號函數(shù),n>0,返回1

    n<0,返回-1

    n=0,返回0

     

    SELECT SIGN(-2.3),SIGN(2.3),SIGN(0) FROM DUAL;
    SQRT(<n>) 返回n的平方根 SELECT SQRT(9) FROM DUAL;
    TRUNC(<n1>,<n2>) 功能類似ROUND函數(shù)。但不做四舍五入。

    SELECT TRUNC(123.456,2),TRUNC(123.456,-1) FROM DUAL;

    分別返回結果:123.45120

     

    VSIZE(n) 返回數(shù)字n的存儲字節(jié) SELECT VSIZE(123) FROM DUAL;
    日期函數(shù)(日期可以進行算術運算) SYSDATE 返回相同日期 SELECT SYSDATE FROM DUAL;
    ADD_MONTHS(<d>,<i>) 返回日期d 加上i個月后的新日期(i正可負)

    SELECT SYSDATE, ADD_MONTHS(SYSDATE,2),

    ADD_MONTHS(SYSDATE,-2)

    FROM DUAL;

     

    LAST_DAY(<d>) 返回日期d所在的月的最后一天。 SELECT SYSDATE,LAST_DAY(SYSDATE) FROM DUAL
    MONTHS_BETWEEN(<d1>,<d2>) 返回日期d1d2大多少月數(shù)。 SELECT MONTHS_BETWEEN(’19-Dec-1999’,’19-Mar-2000’ FROM DUAL;
    NEW_TIME(<d>,<tz1>,<tz2>) 將時區(qū)tz1的時間d,轉換為時區(qū)tz2里的時間。 SELECT SYSDATE,NEW_TIME(SYSDATE,’CDT’,’PDT’) FROM DUAL;
    NEXT_DAY(<d>,<dow>) 返回日期d后的第一個dow(dowday of week) SELECT NEXT_DAY(SYSDATE,’Monday’) FROM DUAL;
    常用轉換函數(shù) TO_CHAR(<x>[,<fmt>[,<nlsparm>]]) x轉換成字符串。(參數(shù)含義請看ORACLE的聯(lián)機幫助) SELECT TO_CHAR(SYSDATE,’YYYY-MM-DD’) FROM DUAL;
    TO_NUMBER(<c>[,<fmt>[,<nlsparm>]]) 將字符串c轉換成數(shù)字。(參數(shù)含義請看ORACLE的聯(lián)機幫助) SELECT TO_NUMBER(‘123’) FROM DUAL;

    TO_DATE(<c>[,<fmt>[,<nlsparm>]])

    (常見的日期格式請查聯(lián)機幫助。)

    將字符串c轉換成日期。 SELECT TO_DATE(’19-Mar-99’,’DD-Mon-YYYY’) FROM DUAL;
    兩個重要函數(shù)

    DECODE(<x>,<m1>,<r1>[,<m2>,

    <r2…>][,<d>])

    (DECODE函數(shù)功能非常強大,請仔細玩味。)

     

    一個功能非常強大的函數(shù),它使得SQL非常高效。它的功能類似于一系列的if…then…else語句。

    SELECT sid,serial#,username,

    DECODE(command

    ,0,’None’

    ,2,’Insert’

    ,3,’Select’

    ,6,’Update’

    ,7,’Delete’

    ,8,’Drop

    ,’Other’) cmd

    FROM V$SESSION WHERE type<>’BACKGROUND’;

     

    NVL(x1,x2)

    注意ORACLE中的NULL值,注意該函數(shù)作用

     

    如果x1為空返回x2,否則返回x1 SELECT NVL(ename,’無姓名’)  FROM  EMP;

    分組函數(shù)

      AVG([{DISTINCT|ALL}]<n>) 求返回行的指定列的平均值

    SELECT AVG(sal),AVG(ALL sal),AVG(DISTINCT sal)

    FROM SCOTT.EMP;

     

    COUNT({*|[DISTINCT|ALL]}<x>) 統(tǒng)計返回的行數(shù)

    SELECT COUNT (*), COUNT(DISTINCT mgr),COUNT(mgr)

    FROM SCOTT.EMP

     

    MAX([{DISTINCT|ALL}]<x>) 求返回行的指定列的最大值 SELECT MAX(sal),MAX(DISTINCT sal) FROM EMP;
    MIN([{DISTINCT|ALL}]<x>) 求返回行的指定列的最小值 SELECT MIN(sal),MIN(DISTINCT sal) FROM EMP;
    STDDEV([{DISTINCT|ALL}]<x>) 求返回行的指定列的標準方差 SELECT STDDEV(sal),STDDEV(DISTINCT sal) FROM EMP;
    SUM() 求返回行的指定列的和 SELECT SUM(sal) FROM EMP;
    VARIANCE() 求返回行的指定列的差異值  

     

     

         注意:

    A、 分組函數(shù)不會處理空值,也不會返回空值

    B、  所有的分組函數(shù)既可以作用于指定列的所有值上,也可以只作用于指定列的差異列值上

    C、 當指定ALL選項時,分組函數(shù)作用于所有非空列值行上。當指定DISTINCT選項時,分組函數(shù)只作用于非空的且具有不同列值的行上(即,重復列值的行只計算一行);
    轉自:http://www.pcptel.com/content/view/66/30/

    posted on 2005-12-02 10:57 霹靂火 閱讀(463) 評論(0)  編輯  收藏 所屬分類: oracle數(shù)據(jù)庫

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 成人午夜免费视频| jzzijzzij在线观看亚洲熟妇| 中国在线观看免费的www| 国产午夜无码视频免费网站| 亚洲人成77777在线播放网站不卡 亚洲人成77777在线观看网 | 夜夜爽免费888视频| 亚洲AV色吊丝无码| 成人免费毛片内射美女-百度| 亚洲欧洲久久精品| 又黄又爽又成人免费视频| 亚洲成AV人片久久| 成人免费网站在线观看| 亚洲精品久久无码| 免费va人成视频网站全| 免费一区二区无码视频在线播放| 亚洲精品WWW久久久久久| 国产精品青草视频免费播放| 国产亚洲精品精品国产亚洲综合| 在线观看免费无码视频| 亚洲成人免费在线观看| 在线精品一卡乱码免费| 亚洲日本在线电影| 亚洲M码 欧洲S码SSS222| 一级有奶水毛片免费看| 亚洲国产精品乱码一区二区| 无码成A毛片免费| 国产亚洲玖玖玖在线观看| 亚洲成a人片在线观看日本麻豆| 久久久精品国产亚洲成人满18免费网站 | 精品韩国亚洲av无码不卡区| 一本久久综合亚洲鲁鲁五月天| 91视频精品全国免费观看| 色婷婷六月亚洲婷婷丁香| 亚洲免费综合色在线视频| 黄人成a动漫片免费网站| 久久久亚洲精品视频| 猫咪社区免费资源在线观看| 美女视频黄频a免费| 亚洲av无码乱码国产精品| 亚洲av永久无码| 国产l精品国产亚洲区在线观看|