Oracle數據庫中coalesce函數的使用

一、Oracle視圖(View)創建使用:

Oracle對象教程:視圖(View)創建使用,視圖(View)實際上是一張或者多張表上的預定義查詢,這些表稱爲基表。從視圖中查詢信息與從表中查詢信息的方法完全相同。只需要簡單的SELECT…FROM即可。

視圖具有以下優點:

  1. 可以限制用戶只能通過視圖檢索數據。這樣就可以對最終用戶屏蔽建表時底層的基表。

  2. 可以將複雜的查詢保存爲視圖。可以對最終用戶屏蔽一定的複雜性。

  3. 限制某個視圖只能訪問基表中的部分列或者部分行的特定數據。這樣可以實現一定的安全性。

  4. 從多張基表中按一定的業務邏輯抽出用戶關心的部分,形成一張虛擬表。

語法結構:創建視圖

CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name

AS

SELECT查詢

[WITH READ ONLY CONSTRAINT]

語法解析:

  1. OR REPLACE:如果視圖已經存在,則替換舊視圖。

  2. FORCE:即使基表不存在,也可以創建該視圖,但是該視圖不能正常使用,當基表創建成功後,視圖才能正常使用。

  3. NOFORCE:如果基表不存在,無法創建視圖,該項是默認選項。

  4. WITH READ ONLY:默認可以通過視圖對基表執行增刪改操作,但是有很多在基表上的限制(比如:基表中某列不能爲空,但是該列沒有出現在視圖中,則不能通過視圖執行insert操作),WITH READ ONLY說明視圖是隻讀視圖,不能通過該視圖進行增刪改操作。現實開發中,基本上不通過視圖對錶中的數據進行增刪改操作。

  5. 刪除視圖可以使用“DROP VIEW 視圖名稱”,刪除視圖不會影響基表的數據。

二、coalesce函數的作用:

1.coalesce函數是用來獲取第一個不爲空的列的值
2.coalesce函數裏面的數據類型,必須全部都跟第一列的數據類型一致
3.CREATE OR REPLACE VIEW v AS SELECT NULL AS c FROM dual;這樣建立的視圖,列c的數據類型是char。

三、示例:

CREATE OR REPLACE VIEW v AS 
SELECT NULL AS c1,NULL AS c2,1 AS c3,NULL AS c4,2 AS c5,NULL AS c6 FROM dual UNION ALL 
SELECT NULL AS c1,NULL AS c2,NULL AS c3,3 AS c4,NULL AS c5,2 AS c6 FROM dual;

select * from v;

這裏寫圖片描述

select * from v where c3 is null;

這裏寫圖片描述

返回多個值中第一個不爲空的值

select coalesce (c1,c2,c3,c4,c5,c6) as c from v;---返回多個值中第一個不爲空的值
select nvl(nvl(nvl(nvl(nvl(c1,c2),c3),c4),c5),c6) as c from v;---返回多個值中第一個不爲空的值

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章