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

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

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

    WEB開發(fā) de 點(diǎn)滴

    by sanwish

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      38 隨筆 :: 0 文章 :: 4 評(píng)論 :: 0 Trackbacks
    ????????? DECODE函數(shù)是ORACLE PL/SQL是功能強(qiáng)大的函數(shù)之一,目前還只有ORACLE公司的SQL提供了此函數(shù),其他數(shù)據(jù)庫廠商的SQL實(shí)現(xiàn)還沒有此功能。

    ?????????DECODE有什么用途呢?先構(gòu)造一個(gè)例子,假設(shè)我們想給智星職員加工資,其標(biāo)準(zhǔn)是:工資在8000元以下的將加20%;工資在8000元以上的加15%,通常的做法是,先選出記錄中的工資字段值? select salary into var-salary from employee,然后對變量var-salary用if-then-else或choose case之類的流控制語句進(jìn)行判斷。如果用DECODE函數(shù),那么我們就可以把這些流控制語句省略,通過SQL語句就可以直接完成。如下:select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary from employee 是不是很簡潔? DECODE的語法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value 等于if1時(shí),DECODE函數(shù)的結(jié)果返回then1,...,如果不等于任何一個(gè)if值,則返回else。初看一下,DECODE 只能做等于測試,但剛才也看到了,我們通過一些函數(shù)或計(jì)算替代value,是可以使DECODE函數(shù)具備大于、小于或等于功能。

    decode()函數(shù)使用技巧

    ·軟件環(huán)境:

    1、Windows NT4.0+ORACLE 8.0.4

    2、ORACLE安裝路徑為:C:\ORANT

    ·含義解釋:

    decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)

    該函數(shù)的含義如下:

    IF 條件=值1 THEN

    RETURN(翻譯值1)

    ELSIF 條件=值2 THEN

    RETURN(翻譯值2)

    ......

    ELSIF 條件=值n THEN

    RETURN(翻譯值n)

    ELSE

    RETURN(缺省值)

    END IF

    · 使用方法:

    1、比較大小

    select decode(sign(變量1-變量2),-1,變量1,變量2) from dual; --取較小值

    sign()函數(shù)根據(jù)某個(gè)值是0、正數(shù)還是負(fù)數(shù),分別返回0、1、-1

    例如:

    變量1=10,變量2=20

    則sign(變量1-變量2)返回-1,decode解碼結(jié)果為“變量1”,達(dá)到了取較小值的目的。

    2、表、視圖結(jié)構(gòu)轉(zhuǎn)化

    現(xiàn)有一個(gè)商品銷售表sale,表結(jié)構(gòu)為:

    month char(6) --月份

    sell number(10,2) --月銷售金額

    現(xiàn)有數(shù)據(jù)為:

    200001 1000

    200002 1100

    200003 1200

    200004 1300

    200005 1400

    200006 1500

    200007 1600

    200101 1100

    200202 1200

    200301 1300

    想要轉(zhuǎn)化為以下結(jié)構(gòu)的數(shù)據(jù):

    year char(4) --年份

    month1 number(10,2) --1月銷售金額

    month2 number(10,2) --2月銷售金額

    month3 number(10,2) --3月銷售金額

    month4 number(10,2) --4月銷售金額

    month5 number(10,2) --5月銷售金額

    month6 number(10,2) --6月銷售金額

    month7 number(10,2) --7月銷售金額

    month8 number(10,2) --8月銷售金額

    month9 number(10,2) --9月銷售金額

    month10 number(10,2) --10月銷售金額

    month11 number(10,2) --11月銷售金額

    month12 number(10,2) --12月銷售金額

    結(jié)構(gòu)轉(zhuǎn)化的SQL語句為:

    create or replace view

    v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)

    as

    select

    substrb(month,1,4),

    sum(decode(substrb(month,5,2),'01',sell,0)),

    sum(decode(substrb(month,5,2),'02',sell,0)),

    sum(decode(substrb(month,5,2),'03',sell,0)),

    sum(decode(substrb(month,5,2),'04',sell,0)),

    posted on 2008-11-10 10:00 sanwish 閱讀(1469) 評(píng)論(0)  編輯  收藏 所屬分類: Sql
    主站蜘蛛池模板: 久久亚洲精品人成综合网| 国产乱子伦精品免费女| 亚洲VA中文字幕不卡无码| 日本久久久免费高清| 亚洲日本va在线观看| 999国内精品永久免费视频| 麻豆亚洲AV永久无码精品久久| 91成人免费观看在线观看| 亚洲乱码精品久久久久..| 中文字幕的电影免费网站| 亚洲综合图色40p| 四虎国产精品免费永久在线| 亚洲中文字幕无码中文字在线| 国产精品永久免费视频| 中文亚洲成a人片在线观看| 中文字幕a∨在线乱码免费看| 国产精品亚洲高清一区二区| 中文字幕在线免费视频| 亚洲国产精品SSS在线观看AV| 99久久精品免费视频| 亚洲国产成人91精品| 麻豆国产人免费人成免费视频 | 亚洲人成电影在线天堂| 97视频免费观看2区| 亚洲精品中文字幕无乱码麻豆| 9久9久女女免费精品视频在线观看 | 亚洲精品福利网站| 91免费资源网站入口| 亚洲av色香蕉一区二区三区| 免费播放春色aⅴ视频| 免费一区二区无码东京热| 97亚洲熟妇自偷自拍另类图片| 精品久久久久成人码免费动漫| 亚洲夜夜欢A∨一区二区三区| 国内精品免费久久影院| 亚洲图片校园春色| 一本久到久久亚洲综合| a国产成人免费视频| 亚洲91精品麻豆国产系列在线| 国产一区二区三区在线免费观看| 97在线免费视频|