Oracle中coalesce函数的用法

本文详细介绍了Coalesce函数的使用方法,包括其功能、语法、数据类型限制及多种数据类型的实例演示,并通过创建视图的方式展示了如何灵活运用此函数解决实际问题。
部署运行你感兴趣的模型镜像
学习了几天教主的书,今天看到coalesce函数,功能很强大啊!

coalesce函数的参数是列,结果是取出第一个不为空的列的数据。

首先,建一个视图:

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;

查看视图结果:


使用coalesce函数查结果:

SELECT COALESCE (c1,c2,c3,c4,c5,c6) AS c FROM v;

结果竟是:


难道coalesce函数不支持number类型?带着这个疑问,给转换一下,结果:

SELECT COALESCE (c1,c2,to_char(c3),to_char(c4),to_char(c5),to_char(c6)) AS c FROM v;


好像是真的,那么对date类型的支持呢?试一试

CREATE OR REPLACE VIEW v AS
SELECT to_date('20150101','YYYYMMDD') 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;

结果竟然:


到这里就不禁要想,应该不是不支持某种数据类型,而是把第一列的数据类型,作为整个函数的数据类型了。

这样试试就行了


最后,既然coalesce函数里面是列,那么用*代表所有列行不行呢?


显然是不行的。


总结:

1、coalesce函数是用来获取第一个不为空的列的值

2、coalesce函数里面的数据类型,必须全部都跟第一列的数据类型一致

3、CREATE OR REPLACE VIEW v AS SELECT NULL AS c FROM dual;这样建立的视图,列c的数据类型是char。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值