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 天涯孤客 閱讀(154) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 鸡西市| 和田县| 伊吾县| 偏关县| 玛曲县| 黎城县| 龙口市| 弥渡县| 林甸县| 鹤壁市| 剑阁县| 札达县| 保山市| 开平市| 天等县| 永兴县| 师宗县| 新密市| 即墨市| 佛教| 疏附县| 射洪县| 临武县| 鸡泽县| 牟定县| 江川县| 云霄县| 岚皋县| 元阳县| 吉林市| 罗甸县| 延吉市| 若尔盖县| 南充市| 都安| 扎鲁特旗| 茶陵县| 黑水县| 阿坝县| 永川市| 大荔县|