今天研究了一下數(shù)據(jù)庫中的過程,發(fā)現(xiàn)用到NVL這個(gè)函數(shù),我記憶力不好,之前用過,長期不用又忘了。于是去查看了下官方的用法解釋:
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)山陰免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions119.htm#i91798
NVL屬于字符轉(zhuǎn)化輸出也是字符類型的。
表達(dá)式為NVL(expr1,expr2)
其目的就是為了轉(zhuǎn)化"空"字符為"非空"字符,當(dāng)expr1為空時(shí),輸出expr2,相反則輸出expr1.
原文中提到expr1和expr2的可以是任意數(shù)據(jù)類型,如果兩者的數(shù)據(jù)類型不一致,則會(huì)進(jìn)行類型轉(zhuǎn)化,
其轉(zhuǎn)化的原則遵循:
1、如果expr1是字符類型,則在進(jìn)行比較前將expr2轉(zhuǎn)化成expr1的類型,并以varchar2類型返回字符集。
2、如果expr1是數(shù)值類型,則由Oracle自身根據(jù)最高優(yōu)先級(jí)判斷,將數(shù)據(jù)類型轉(zhuǎn)化為高優(yōu)先的數(shù)據(jù)類型,
并且最終以該類型返回?cái)?shù)據(jù)。
舉例:
SELECT NVL(MAX(ID), 0) FROM WAYBILL;
這個(gè)意思表示當(dāng)WAYBILL表的中最大ID為空的時(shí)候返回0。