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

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

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

    隨筆-61  評(píng)論-13  文章-19  trackbacks-0

    轉(zhuǎn)載:oracle中的函數(shù)

    Oracle已經(jīng)內(nèi)建了許多函數(shù),不同的函數(shù)有不同的作用和用法,有的函數(shù)只能作用在一個(gè)記錄行上,有的能夠作用在多個(gè)記錄行上,不同的函數(shù)可能處理不同的數(shù)據(jù)類(lèi)型。常見(jiàn)的有兩類(lèi),單行函數(shù)和分組函數(shù) 。

    單行函數(shù):

    單行函數(shù)

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

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

    FROM DUAL;

     

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

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

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

     

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

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

    SELECT ROUND(12345.678,-2),

    ROUND(12345.678,2)

    ?FROM? DUAL;

    分別返回結(jié)果: 12300 12345.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>) 返回 n1 n2 后的余數(shù)。

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

    分別返回結(jié)果: 4 0.5 -1

     

    SIGN(<n>)

    符號(hào)函數(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>) 功能類(lèi)似 ROUND 函數(shù)。但不做四舍五入。

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

    分別返回結(jié)果: 123.45 120

     

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

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

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

    ( 常見(jiàn)的日期格式請(qǐng)查聯(lián)機(jī)幫助。 )

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

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

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

    (DECODE 函數(shù)功能非常強(qiáng)大,請(qǐng)仔細(xì)玩味。 )

     

    一個(gè)功能非常強(qiáng)大的函數(shù),它使得 SQL 非常高效。它的功能類(lèi)似于一系列的 if…then…else 語(yǔ)句。

    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,’ 無(wú)姓名 ’)? 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)計(jì)返回的行數(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>) 求返回行的指定列的標(biāo)準(zhǔn)方差 SELECT STDDEV(sal),STDDEV(DISTINCT sal) FROM EMP;
    SUM() 求返回行的指定列的和 SELECT SUM(sal) FROM EMP;
    VARIANCE() 求返回行的指定列的差異值  

    注意:

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

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

    ?? C、當(dāng)指定ALL選項(xiàng)時(shí),分組函數(shù)作用于所有非空列值行上。當(dāng)指定DISTINCT選項(xiàng)時(shí),分組函數(shù)只作用于非空的且具有不同列值的行上(即,重復(fù)列值的行只計(jì)算一行)。
    posted on 2006-03-23 22:38 xnabx 閱讀(239) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 3、DataBase

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费大片黄在线观看| 亚洲AV成人一区二区三区AV| 成年女人喷潮毛片免费播放| 亚欧免费视频一区二区三区| 午夜老司机永久免费看片| 免费黄网站在线看| 久久综合九色综合97免费下载| 你是我的城池营垒免费观看完整版| 精选影视免费在线 | 久久不见久久见免费影院www日本| 一级毛片正片免费视频手机看 | 日韩一级视频免费观看| 青草草在线视频永久免费| 国产精品国产免费无码专区不卡| 免费无码一区二区三区蜜桃大 | 久久久久久国产精品免费免费男同 | 精精国产www视频在线观看免费| 精品乱子伦一区二区三区高清免费播放 | 亚洲女同成人AⅤ人片在线观看| 免费成人午夜视频| 亚洲AV无码一区二三区| 亚洲精品尤物yw在线影院| 亚洲人成中文字幕在线观看| 亚洲国产精品无码专区在线观看| 亚洲av永久无码精品漫画 | 在线免费视频一区| 亚洲AV无码乱码在线观看牲色| 亚洲精品亚洲人成在线观看下载| 亚洲精品无码久久千人斩| 亚洲欧洲国产日韩精品| 亚洲av无码电影网| 黄色网址大全免费| 日本高清免费观看| 毛片在线看免费版| 2048亚洲精品国产| 豆国产96在线|亚洲| 国产裸体美女永久免费无遮挡| 久久99热精品免费观看牛牛| 免费毛片a在线观看67194| 国产精品色午夜视频免费看| 国产成人精品久久亚洲高清不卡 |