博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

判断不为空函数

判断不为空函数

create table dept_info(
pk_name varchar(100),
dept01 varchar(100),
dept02 varchar(100)
)

insert into dept_info values('001','长租','小微'),('001','长租',''),('002','长租','')

select pk_name,case when d2 !='' then d2 else d1 end from
(select pk_name, max(dept01) as d1 ,max(dept02) as d2 from dept_info group by pk_name) T ;

select  pk_name,nvl(d2,d1) from
(select pk_name, max(dept01) as d1 ,max(dept02) as d2 from pbbase.dept_info group by pk_name) T ;

select  pk_name,ifnull(d2,d1)  from
(select pk_name, max(dept01) as d1 ,max(dept02) as d2 from pbbase.dept_info group by pk_name) T ;

select  pk_name,colesce(d2,d1)  from
(select pk_name, max(dept01) as d1 ,max(dept02) as d2 from pbbase.dept_info group by pk_name) T ;
 

在 Oracle 数据库中,NVL函数的作用是如果参数1不为空,则返回参数1的值,否则返回参数2的值。

MySQL 中没有 NVL 函数,但是可以使用 IFNULL 函数 和 COLESCE 来替代。

NVL(a,b)
a 为 null 就返回 b 的值。

SELECT COLESCE(NULL, 'test', 'hello');
输出结果为 test

 

posted @ 2023-05-09 08:21  CHANG_09  阅读(27)  评论(0编辑  收藏  举报