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;---返回多个值中第一个不为空的值

这里写图片描述

你可能感兴趣的:(数据库)