Oracle的數值處理函數之 ------ 空值置換函數


     Oracle中NULL值不能用於計算。NULL與0不同,應當把NULL看作是一個未知值或無關的,NULL不能進行計算,所以所的結果永遠為NULL。

     在某些情況下,我們可以對NULL值進行合理的假設,在進行計算時對其進行處理。

     NVL:空值轉換函數

     格式:NVL(value,substitute)

           如果value為NULL,則函數等於substitute。如果value不為NULL,則函數等於value的值。注意substitute可以是一個數字、另一列或一個計算結果。

     select NVL(age,18) from userInfo;

     age為NULL返回18,否則返回age的值。

     NVL不只限於數值,雖然它也能用於CHAR、VARCHAR2、DATE和其他數據類型,但是value和substitute必須為相同的數據類型。另外,只有在數據是未知的而不是無關的情況下,NVL才是有用的。

       一個類似的函數是NVL2,它相對復雜一些。

      格式:NVL2(expr1,expr2,expr3)

              在NVL2中,expr1永遠不會被返回,返回值是expr2或expr3。如果expr1不為NULL,則NVL2返回expr2。如果expr1為NULL,則NVL2返回expr3。參數expr1可以是任意數據類型。參數expr2和    expr3可以是除LONG以外的任意數據類型。

              對於BINARY_FLORT和BINARY_DOUBLE數據類型可以使用NANVL函數。NANVL接收兩個變量,並且當第1個變量不是數字時返回第2個變量。

       


免責聲明!

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



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