一、Mysql中ifNull()/if()/case when的用法
IFNULL函数的用法:
IFNULL(expr1,expr2),表示若expr1为NULL,则返回expr2,否则返回expr1。
IF函数的用法:
IF(expr1,expr2,expr3),表示若expr1为TRUE(expr1<>0且expr1<>NULL),则返回expr2,否则返回expr3。
CASE WHEN函数的用法:
CASE WHEN condition1 THEN result1 [WHEN condition2 THEN result2 …] [ELSE resultN] END,表示若condition1为TRUE,则返回result1 ,否则若condition2为true则返回result2…,若均不满足则返回resultN。
二、Oracle中nvl()/nvl2()/decode()的用法
NVL函数的用法:
NVL(expr1,expr2),表示若expr1为NULL,则返回expr2,否则返回expr1。
NVL2函数的用法:
NVL2(expr1,expr2,expr3),表示若expr1不为NULL,则返回expr2,否则返回expr3。
DECODE函数的用法:
DECODE(value,if1,then1,if2,then2,if3,then3,……,else),表示若value等于if1,则返回then1,否则若等于if2则返回then2,……,若均不满足则返回else。
三:总结
通过比较,可以发现:
ifNull(exp1,exp2)类似于nvl(exp1,exp2);
if(exp1,exp2,exp3)类似于nvl2(exp1,exp2,exp3);
CASE WHEN 类似于DECODE()。