文章目录

  • 1 概述
  • 2 示例
  • 2.1 isnull(expr):expr 是否为空
  • 2.2 ifnull(expr1, expr2):expr1 是否为空
  • 3 扩展
  • 3.1 nullif(expr1, expr2):俩表达式是否相等
  • 3.2 if(expr1, value1, value2):expr1 是否成立
  • 3.3 coalesce(value1, valueN):返回第一个非空值


1 概述


判空

isnull(expr):expr 是否为空

1(是),0(否)

返回值

ifnull(expr1, expr2):expr1 是否为空

expr2(是),expr1(否)


2 示例

2.1 isnull(expr):expr 是否为空

-- 判断 expr 是否为空
---- 若是,返回 1
---- 若否,返回 0
isnull(expr): return 1 or 0

示例:

select isnull(null) 是, -- 1
       isnull('a')  否, -- 0
       isnull('')   否  -- 0
  from dual;

2.2 ifnull(expr1, expr2):expr1 是否为空

-- 判断 expr1 是否为空
---- 若是,返回 expr2
---- 若否,返回 expr1
ifnull(expr1, expr2): return expr2 or expr1

示例:

select ifnull(null, '2'),  -- '2'
       ifnull('1', null),  -- '1'
       ifnull(null, null)  -- null
  from dual;

3 扩展

3.1 nullif(expr1, expr2):俩表达式是否相等

-- 判断 expr1 = expr2 是否成立
---- 若是,返回 null
---- 若否,返回 expr1
nullif(expr1, expr2):return null or expr1

示例:

select nullif('1', '1'),  -- null
       nullif('1', '2')   -- '1'
  from dual;

3.2 if(expr1, value1, value2):expr1 是否成立

-- 判断 expr1 是否为 True
---- 若是,返回 value1
---- 若否,返回 value2
-- 小提示:0:False,非0:True
if(expr, value1, value2): return value1 or value2

示例:

select if(1 = 1, '是', '否'),  -- 是
       if(1 = 2, '是', '否')   -- 否
  from dual;

3.3 coalesce(value1, valueN):返回第一个非空值

-- 返回多个值中,第一个非空的值
select coalesce(null, null, '1', '2')  -- '1'
  from dual;