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)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 莎车县| 洪洞县| 柘城县| 金门县| 兖州市| 临泉县| 金平| 松溪县| 棋牌| 湖口县| 江油市| 石景山区| 洪泽县| 炎陵县| 衡东县| 津市市| 同仁县| 正宁县| 吉木萨尔县| 崇文区| 灵武市| SHOW| 澄江县| 阳江市| 伊川县| 江山市| 宁海县| 襄汾县| 邻水| 辽阳市| 三原县| 闸北区| 礼泉县| 翼城县| 绥宁县| 丰原市| 普兰店市| 鄂州市| 罗甸县| 嘉黎县| 博乐市|