文章目录
- 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;