oracle中decode函數用法


轉自:https://www.cnblogs.com/vinsonLu/p/3512526.html

1、含義

(1)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

實例

SELECT ACCT_SEQ,
       DECODE(ACCT_SEQ, 119, '22342', 58, '23423', 326, '42342', 'UNKONWN') AS PRODUCT_ID
  FROM AM_ACCT_NET;

結果

 

(2)decode(字段或字段的運算,值1,值2,值3)

 這個函數運行的結果是,當字段或字段的運算的值等於值1時,該函數返回值2,否則返回值3
 值1,值2,值3也可以是表達式

實例

 

2、比較大小

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”,達到了取較小值的目的。

 實例

SELECT DECODE(SIGN(123-342),-1,123,1,342)FROM DUAL;

結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM