IF 表达式

IF( expr1 , expr2 , expr3 )

expr1 的值为 TRUE,则返回值为 expr2
expr1 的值为FALSE,则返回值为 expr3

如下:

SELECT IF(TRUE,1+1,1+2);
-> 2 SELECT IF(FALSE,1+1,1+2);
-> 3 SELECT IF(STRCMP("111","222"),"不相等","相等");
-> 不相等
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

那么这个 IF 有啥用处呢?举个例子:
查找出售价为 50 的书,如果是 java 书的话,就要标注为 已售完
那么对应的SQL语句该怎样去写呢?

select *,if(book_name='java','已卖完','有货') as product_status from book where price =50
  • 1

IFNULL 表达式

IFNULL( expr1 , expr2 )

在 expr1 的值不为 NULL的情况下都返回 expr1,否则返回 expr2,如下:

SELECT IFNULL(NULL,"11");
-> 11 SELECT IFNULL("00","11");
-> 00
转自 https://blog.csdn.net/zjq_1314520/article/details/62467086

sql中的 IF 条件语句的用法的更多相关文章

  1. SQL中循环和条件语句

    .if语句使用示例: declare @a int begin print @a end else begin print 'no' end .while语句使用示例: declare @i int ...

  2. 转载-SQL中的where条件,在数据库中提取与应用浅析

    1        问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语 ...

  3. SQL中的where条件,在数据库中提取与应用浅析

    1. 问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语法解析.权限 ...

  4. 转: SQL中的where条件,在数据库中提取与应用浅析

    SQL中的where条件,在数据库中提取与应用浅析 http://hedengcheng.com/?p=577 1问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当 ...

  5. Python中生成器和yield语句的用法详解

    Python中生成器和yield语句的用法详解 在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况.一些话题("if/else控制流" ...

  6. sql中的group by 和 having 用法解析

    转载博客:http://www.cnblogs.com/wang-123/archive/2012/01/05/2312676.html --sql中的group by 用法解析:-- Group B ...

  7. sql中exists和not exists的用法

    该文转载自:http://www.cnblogs.com/mytechblog/articles/2105785.html sql中exists,not exists的用法 exists : 强调的是 ...

  8. SQL 中的多条件查询

    在应用程序开发中,多条件查询是个经常遇到的情况,最简单最麻烦的方法是把所有的可能情况都考虑到,但是无疑是繁琐的,而且很容易漏掉可能的情形,下面是SQL语句实现多条件查询的情况 select * fro ...

  9. SQL 视图 局部变量 全局变量 条件语句 事务 触发器

    一.视图 1.视图是一张虚拟表,他所存储的不是实际数据,而是查询语句,但我们可以对视图进行像数据表一样的操作. 2.为什么使用视图呢?我的理解是:1.在远程传输数据时,可以避免过长的查询字符,减少流量 ...

随机推荐

  1. TS学习随笔(七)->声明文件

    now我们来看一看TS怎么声明文件, 在JS里面我们经常会使用各种第三方类库,引入方式也不太相同,常见的就是在HTML中通过script标签引入,然后就可以使用全局变量$或者jQuery了 我们通常这 ...

  2. Android远程桌面助手(Build 0662)

    ARDC Build 0662, Jul 19, 2017 OPT: 1440*2560及以下分辨率设备,帧速能稳定在20帧~25帧 FIX: 拖拽文件的路径中包含空格的处理 ADD: 支持Ctrl+ ...

  3. CentOS7安装MySQL并配置账户等

    注意: 有的Centos版本默认安装了mariadb, 可以先将其卸载 检查mariadb是否安装 yum list installed | grep mariadb 卸载mariadb( all ) ...

  4. sql 语句-初级进阶(二)

    1.insert插入数据时注意事项: 每次插入一整行,不能半行或者是几列数据. 值与列数必须相同,包括数据类型也必须匹配. 不能为标识列指定值(就是最前面的那一序号列),它是自动增长的 列的数据类型为 ...

  5. Linux内存描述之内存区域zone--Linux内存管理(三)

    1 内存管理域zone 为了支持NUMA模型,也即CPU对不同内存单元的访问时间可能不同,此时系统的物理内存被划分为几个节点(node), 一个node对应一个内存簇bank,即每个内存簇被认为是一个 ...

  6. C语言----int (*p)[4] ---思考总结

    a+1  跳4个int (*a)+1 跳一个int

  7. 英语口语练习系列-C02-抱怨

    连接到英语口语系列总分类 连接到上一章棒棒的 竹石 郑燮 zhèng xiè 竹石 作者:郑燮 咬定青山不放松,立根原在破岩中. 千磨万击还坚劲,任尔东西南北风. Our team sucks. 我们 ...

  8. ASP.NET基础知识汇总之WebConfig各节点介绍

    web.config虽然一直用,接触最多的也就是节点appSettings和connectionSettings,今天系统的梳理一下,了解一下webconfig各个节点的含义,先简单的浏览一下具体的w ...

  9. spring mybatics

    spring boot     web.mysql.mybatics.jps 遇到jar包版本不行的直接换个版本Add进去 https://github.com/forezp/SpringBootLe ...

  10. Installing Supervisor and Superlance on CentOS

    Installing Supervisor1 and Superlance2 on CentOS/RHEL/Fedora can be a little tricky, as the versions ...