Mysql中ifNull()/if()/case when用法和Oracle中nvl()/nvl2()/decode()的用法及其比较
2016-01-06 17:20
357 查看
一、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/
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/
相关文章推荐
- 如何解析oracle执行计划
- oracle 12c Error in invoking target 'links proc gen_pcscfg procob'
- oracle在SERIALIZABLE级别上事务的特殊性与ORA-08177
- Oracle中Union,Union All,Intersect,Minus
- oracle pl sql 配置问题
- Oracle数据库中的函数
- Oracle SQL- MERGE语句
- Oracle的Replace函数与translate函数详解与比较
- Oracle高级查询之OVER (PARTITION BY ..)
- mysql,sqlserver与Oracle事务的不同与选择
- Oracle instant client的使用
- oracle 10g学习5
- LINUX下oracle数据库的启动和关闭
- Instant Client和Oracle Client有什么区别
- oracle connect by用法
- oracle 10g学习4
- Oracle 树操作(select…start with…connect by…prior)
- oracle查询多行数据合并成一行数据
- Oracle 中的 FORALL 语句
- Oracle lsnrctl--监听器的启动和关闭