decode函數解決oracle報錯"除數為0"的問題


公司的網站在運行的時候突然報錯打不開了,打開一看發現報了一個錯:ORA-01476:除數為0。

網上一搜發現還是挺多人遇到這個問題的,解決辦法就是用decode函數。

decode是oracle內置的一個函數。

含義解釋:
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

 

簡單來說,decode(exp1,0,0,exp2/exp1),就是當exp1等於0的時候,exp2/exp1不再報錯,而是返回0.當exp1不等於0,則返回exp2/exp1的結果。

以后在寫帶有除法的sql語句時都要盡量用decode函數

 


免責聲明!

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



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