oracle中decode函數用法

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

一、含義函數

(1)decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)spa

 IF 條件=值1 THEN
    RETURN(翻譯值1)
ELSIF 條件=值2 THEN
    RETURN(翻譯值2)
    ......
ELSIF 條件=值n THEN
    RETURN(翻譯值n)
ELSE
    RETURN(缺省值)
END IF翻譯

實例code

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

結果htm

 

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

 這個函數運行的結果是,當字段或字段的運算的值等於值1時,該函數返回值2,不然返回值3
 值1,值2,值3也能夠是表達式class

實例變量

 

二、比較大小select

select decode(sign(變量1-變量2),-1,變量1,變量2) from dual; --取較小值
sign()函數根據某個值是0、正數仍是負數,分別返回0、一、-1
例如:
變量1=10,變量2=20
則sign(變量1-變量2)返回-1,decode解碼結果爲「變量1」,達到了取較小值的目的。

 實例

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

結果

相關文章
相關標籤/搜索