Mysql中类似于nvl()函数的ifnull()函数 乐杨俊

原创 2013年12月01日 21:19:53

Mysql中类似于nvl()函数的ifnull()函数   

IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。
mysql> select IFNULL(1,0);
        -> 1
mysql> select IFNULL(0,10);
        -> 0
mysql> select IFNULL(1/0,10);
        -> 10
mysql> select IFNULL(1/0,'yes');
        -> 'yes'
 
IF(expr1,expr2,expr3)
如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值,取决于它被使用的上下文。
mysql> select IF(1>2,2,3);
        -> 3
mysql> select IF(1<2,'yes','no');
        -> 'yes'
mysql> select IF(strcmp('test','test1'),'yes','no');
        -> 'no'

expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值,你应该使用一个比较操作来做。

mysql> select IF(0.1,1,0);
        -> 0
mysql> select IF(0.1<>0,1,0);
        -> 1

在上面的第一种情况中,IF(0.1)返回0,因为0.1被变换到整数值, 导致测试IF(0)。这可能不是你期望的。在第二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数。

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
 
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
第一个版本返回result,其中value=compare-value。第二个版本中如果第一个条件为真,返回result。如果没有匹配的result值,那么结果在ELSE后的result被返回。如果没有ELSE部分,那么NULL被返回。
mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;
       -> "one"
mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;
       -> "true"
mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END;
-> NULL


Mysql中类似于oracle中nvl()函数的ifnull()函数

IFNULL(expr1,expr2)  如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。  my...
  • qq_22642239
  • qq_22642239
  • 2016年10月12日 15:03
  • 9939

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

一、Mysql中ifNull()/if()/case when的用法 IFNULL函数的用法:   IFNULL(expr1,expr2),表示若expr1为NULL,则返回expr2,否则返回exp...
  • nimeijian
  • nimeijian
  • 2016年01月06日 17:20
  • 3035

mysql的IFNULL函数什么意思?

今天看代码无意中发现了SQL中有个IFNULL的函数,于是我查了一下,原来是这么个意思 IFNULL(A,B)  如果A是空的那么IFNULL的结果就是B,反之A不为空那么IFNULL的结果...
  • duanjw1988
  • duanjw1988
  • 2016年11月18日 09:40
  • 715

MYSQL IFNULL函数的使用

MYSQL IFNULL(expr1,expr2)           如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决...
  • dreamboycx
  • dreamboycx
  • 2013年09月27日 17:36
  • 964

Mysql中类似于nvl()函数的ifnull()函数

 IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境...
  • qw222pzx
  • qw222pzx
  • 2015年08月26日 16:58
  • 221

PostgreSQL函数和运算符(三)

7.14 序列相关函数       本节描述用来处理序列对象的函数。可以使用命令CREATE SEQUENCE来创建序列对象。序列对象通常用于为表中的数据行产生一个唯一的标识符。表7-34列出了用来操...
  • neo_liu0000
  • neo_liu0000
  • 2011年03月17日 09:29
  • 11965

mysql可有类似oracle的nvl的函数

要用ifnull,而不是isnull isnull是判断是否为null,返回值是1表示null或者0表示不为空 ifnull等同于oracle的nvl,用法如下 mysql> selec...
  • q1054261752
  • q1054261752
  • 2015年09月01日 12:18
  • 9611

mysql中类似oracle nvl()函数ifnull()

要用ifnull,而不是isnull isnull是判断是否为null,返回值是1表示null或者0表示不为空 ifnull等同于oracle的nvl,用法如下 mysql> s...
  • u010022051
  • u010022051
  • 2016年11月22日 15:16
  • 743

SQLserver中ISNULL函数与Mysql中IFNULL函数的用法

本文介绍下,sql server中的isnull函数,以及mysql中的ifnull函数,介绍二者的具体用法与区别,有兴趣的朋友可以研究下哦。 先来看SQL Serve的ISNULL函数: ...
  • scholar_man
  • scholar_man
  • 2015年01月09日 16:08
  • 1223

【MySQL函数】MYSQL IFNULL和IF函数的使用

下文对MYSQL IFNULL函数的使用进行了详细的叙述,供您参考学习,如果您在MYSQL IFNULL函数使用方面遇到过类似的问题,不妨一看。 MYSQL IFNULL(expr1,expr2) ...
  • fu_zk
  • fu_zk
  • 2013年11月02日 17:30
  • 12711
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mysql中类似于nvl()函数的ifnull()函数 乐杨俊
举报原因:
原因补充:

(最多只允许输入30个字)