jjklm

          decode的用法

          含義解釋:?

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

          ??? 該函數的含義如下:

          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()函數根據某個值是0、正數還是負數,分別返回0、1、-1

          ??? 例如:

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


          ??? 2、表、視圖結構轉化

          ??? 現有一個商品銷售表sale,表結構為:

          month    char(6)      --月份
          sell    number(10,2)   --月銷售金額







          但是只有一個值時,這種情況可能有點特殊:下面給出一個我做過的例子:
          select decode((to_char(pztysj,'yyyy-mm-dd hh24:mi:ss')||'到'||to_char(pzfysj,'yyyy-mm-dd hh24:mi:ss')),'到','',to_char(pztysj,'yyyy-mm-dd hh24:mi:ss')||'到'||to_char(pzfysj,'yyyy-mm-dd hh24:mi:ss')) as pztysj from tb_tms_tysq_tysq t


          如果(to_char(pztysj,'yyyy-mm-dd hh24:mi:ss')||'到'||to_char(pzfysj,'yyyy-mm-dd hh24:mi:ss')='到' 則 該字段的結果為'',否則為to_char(pztysj,'yyyy-mm-dd hh24:mi:ss')||'到'||to_char(pzfysj,'yyyy-mm-dd hh24:mi:ss')

          posted on 2006-11-01 14:17 天涯孤客 閱讀(153) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 四川省| 丰都县| 阳城县| 丰原市| 于田县| 化德县| 吴桥县| 会宁县| 威宁| 台中县| 武威市| 榕江县| 莒南县| 平顺县| 米泉市| 丰县| 屏边| 绥棱县| 银川市| 天镇县| 靖西县| 汤阴县| 富蕴县| 高邑县| 玉环县| 苍山县| 大荔县| 临沂市| 新野县| 涟源市| 石阡县| 麟游县| 同仁县| 九龙城区| 马公市| 信阳市| 清河县| 南投县| 尼木县| 蛟河市| 台南市|