oracle的nvl函數的使用介紹_oracle

來源:互聯網
上載者:User

Oracle的Nvl函數

nvl( ) 函數

從兩個運算式返回一個非null 值。

文法

NVL(eExpression1, eExpression2)

參數

eExpression1, eExpression2

如 果 eExpression1 的計算結果為 null 值,則 NVL( ) 返回 eExpression2。如果 eExpression1 的計算結果不是 null 值,則返回 eExpression1。eExpression1 和 eExpression2 可以是任意一種資料類型。如果 eExpression1 與 eExpression2 的結果皆為 null 值,則 NVL( ) 返回 .NULL.。

傳回值類型

字元型、日期型、日期時間型、數值型、貨幣型、邏輯型或 null 值

說明

在不支援 null 值或 null 值無關緊要的情況下,可以使用 NVL( ) 來移去計算或操作中的 null 值。

select nvl(a.name,'空得') as name from student a joinschool b on a.ID=b.ID

注意:兩個參數得類型要匹配

問:什麼是NULL?

答:在我們不知道具體有什麼資料的時候,也即未知,可以用NULL,

我們稱它為空白,ORACLE中,含有空值的表列長度為零。

ORACLE允許任何一種資料類型的欄位為空白,除了以下兩種情況:

1、主鍵欄位(primary key),

2、定義時已經加了NOT NULL限制條件的欄位

說明:

1、等價於沒有任何值、是未知數。

2、NULL與0、Null 字元串、空格都不同。

3、對空值做加、減、乘、除等運算操作,結果仍為空白。

4、NULL的處理使用NVL函數。

5、比較時使用關鍵字用“is null”和“is not null”。

6、空值不能被索引,所以查詢時有些合格資料可能查不出來,

count(*)中,用nvl(列名,0)處理後再查。

7、排序時比其他資料都大(索引預設是降序排列,小→大),

所以NULL值總是排在最後。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.