Oracle 中 decode 函數用法


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 ID,DECODE(inParam,'para1','值1' ,'para2','值2','para3','值3','para4','值4','para5','值5') name FROM bank

#如果第一個參數inParam=='para1'那么那么select得到的那么顯示為值1;

#如果第一個參數inParam=='para2'那么那么select得到的那么顯示為值2;

#如果第一個參數inParam=='para3'那么那么select得到的那么顯示為值3;

#如果第一個參數inParam=='para4'那么那么select得到的那么顯示為值4;

#如果第一個參數inParam=='para5'那么那么select得到的那么顯示為值5;

#都不相等就為''


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

       這個函數運行的結果是,當字段或字段的運算的值等於值1時,該函數返回值2,否則返回值3
 當然值1,值2,值3也可以是表達式,這個函數使得某些sql語句簡單了許多

示例:

SELECT ID,DECODE(inParam,'beComparedParam','值1' ,'值2') name FROM bank

#如果第一個參數inParam=='beComparedParam',則select得到的name顯示為值1,

#如果第一個參數inParam!='beComparedParam',則select得到的name顯示為值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”,達到了取較小值的目的。


免責聲明!

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



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