首页 > 数据库 >mysql中nvl_浅谈Mysql中类似于nvl()函数的ifnull()函数

mysql中nvl_浅谈Mysql中类似于nvl()函数的ifnull()函数

时间:2022-09-20 17:23:49浏览次数:80  
标签:函数 IFNULL WHEN expr1 result mysql nvl select 浅谈

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中类似于nvl()函数的ifnull()函数就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: 浅谈Mysql中类似于nvl()函数的ifnull()函数

本文地址: http://www.cppcns.com/shujuku/mysql/180042.html


————————————————
版权声明:本文为CSDN博主「李国凤」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_36140400/article/details/112937256

标签:函数,IFNULL,WHEN,expr1,result,mysql,nvl,select,浅谈
From: https://www.cnblogs.com/javalinux/p/16711790.html

相关文章

  • 面试--Go函数返回局部变量的指针是否安全
    点击查看代码packagemainfuncadd(x,yint)*int{ res:=0 res=x+y return&res}funcmain(){ add(1,2)}![image](https://img2022.cnblogs.com/b......
  • Python学习:len() 函数详解:获取字符串长度或字节数、join()方法:合并字符串
    Python中,要想知道一个字符串有多少个字符(获得字符串长度),或者一个字符串占用多少个字节,可以使用len()函数。语法格式:len(string)string用于指定要进行长度统计的字符串......
  • IPv6升级有几种方式?浅谈浅谈IPv6改造方案
    随着我国5G网络、数据中心等新型基础设施建设的推进,“数字化转型”已成为近年社会发展的主基调。作为互联网数字化转型的基础,IPv6网络的部署早已不是一个“如果”,而是一个......
  • 变量提升与函数提升
    一、变量提升  变量提升即将变量声明提升到它所在作用域的最开始的部分。通过var定义(声明)的变量,在定义语句之前就可以访问到;值:undefined;console.log(a);//un......
  • 浅谈Flexray基础通讯测试
      随着车载网络发展,ECU的通讯速率相较以往得到飞速提升。现今多数OEM在中高速通讯场景中仍采用CANFD进行过渡,但当同时考虑安全和更高带宽要求时,CANFD则无法满足,FlexRay则......
  • Python-getopt函数使用
    getopt函数,主要目的就是对命令行参数进行解析。让你的脚本灵活性更强,可以针对性选择性的进行数据的处理和总结。>>opts,args=getopt.getopt(sys.argv[1:],'c:d:',['......
  • pg 随机函数 和uuid 生成
      UUID生成--创建createextension"uuid-ossp";--使用selectuuid_generate_v4()--创建随机函数CREATEORREPLACEFUNCTIONget_random_number(integer,int......
  • Neo4j之Cypher语法(3) ——函数
    1.谓词函数谓词函数返回true或者false,主要用于检查是否存在或满足特定的条件。1.1Exists如果指定的模式存在于图中,或者特定的属性存在于节点、关系或Map中,那么函数返......
  • C++ 头文件接口设计浅谈
    C++头文件接口设计浅谈作者:独钓寒江雪链接:https://zhuanlan.zhihu.com/p/338227526对于很多出入门C++的程序员来说,大部门新手都是在用别人封装好的库函数,却没有尝试过......
  • 浅谈软件工程——写在学习之前
    写在前面该blog用于记录本人与2022年秋学习软件工程的历程和感悟。今天先简要地谈谈在正式学习前对软件工程的理解,主要内容来源于曹健老师的第一节课以及通过网络收集的......