Mysql中ifNull()/if()/case when用法和Oracle中nvl()/nvl2()/decode()的用法及其比较

一、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()。


参考链接1:http://server.chinabyte.com/21/2648521.shtml
参考链接2:http://blog.itpub.net/21703604/viewspace-1117575/

你可能感兴趣的:(Mysql中ifNull()/if()/case when用法和Oracle中nvl()/nvl2()/decode()的用法及其比较)