工作中遇到这样的例子, CASE type WHEN 1 THEN '普通红包' WHEN 2 THEN '普通礼包加油卡' WHEN 3 THEN '优 惠码兑换加油卡' WHEN 4 THEN '优惠码兑换红包'  ELSE '邀请返加油卡' END
之后每次看到它,都感觉特别的高大上,于是从网上进行查找,终于了解它了,并且根据它进行了延伸,得到其他的几个难懂的SQL,在此以做备注。

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

IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否 则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定 。
mysql> SELECT IF(1>2,2,3);
-> 3
mysql> SELECT IF(1<2,'yes ','no');
-> 'yes'

NULLIF(expr1,expr2)
如果expr1 = expr2 成立,那么返回值为NULL,否则返回值为 expr1。这和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。

转载自:http://blog.knowsky.com/240220.htm

转载于:https://www.cnblogs.com/peijie-tech/p/4935111.html

mysql中难以理解的sql相关推荐

  1. 会mysql不会sql_不是吧,不会有人还不知道MySQL中具实用的SQL语句

    原标题:不是吧,不会有人还不知道MySQL中具实用的SQL语句 目录 实用的SQL 1.插入或替换 2.插入或更新 3.插入或忽略 4.SQL中的if-else判断语句 5.指定数据快照或备份 6.写 ...

  2. mysql数据类型double,double在数据库怎么定义 mysql中double类型在sql中用什么类型

    sql定义一个double变量怎么定义? 局部变量 声明:DECLARE @local_variable data_type @local_variable 是变量的名称.变量名必须以 at 符 (@ ...

  3. mysql中以下正确的sql是_总结MySQL中SQL语法的使用

    --where子句操作符: where子句操作符 = 等于 <> 不等于(标准语法) != 不等于(非标准语法,可移植性差) < 小于 <= 小于等于 > 大于 > ...

  4. mysql中的merge into,SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字)...

    SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字) 语法请参考: 按照语法编写语句 DECLARE @ ...

  5. mysql中nchar_浅谈SQL Server、MySQL中char,varchar,nchar,nvarchar区别

    1,定义: char:    固定长度,存储ANSI字符,不足的补英文半角空格. nchar:   固定长度,存储Unicode字符,不足的补英文半角空格 varchar:  可变长度,存储ANSI字 ...

  6. 在 MySQL 中使用 explain 查询 SQL 的执行计划(转自: 数据分析与开发)

    **来源:Oo若离oO my.oschina.net/ruoli/blog/1807394** 1.什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有 ...

  7. 在MySQL中使用explain查询SQL的执行计划

    1.什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解. MySQL本身的功能架构分为三个部分,分别是 应用层.逻辑层.物理层,不只是MyS ...

  8. 批量 kill mysql 中运行时间长的sql

    以下内容来自mysql手册: 13.5.5.3. KILL语法 KILL [CONNECTION | QUERY] thread_id 每个与mysqld的连接都在一个独立的线程里运行,您可以使用SH ...

  9. mysql kill 脚本_批量 kill mysql 中运行时间长的sql

    以下内容来自mysql手册: 13.5.5.3. KILL语法 KILL [CONNECTION | QUERY] thread_id 每个与mysqld的连接都在一个独立的线程里运行,您可以使用SH ...

最新文章

  1. pyharm虚拟环境_手把手教你如何在Pycharm中加载和使用虚拟环境
  2. Centos新建系统用户详解
  3. 从零打造聚合支付系统:一、浅谈聚合支付的核心价值
  4. MobaXterm 错行,乱码
  5. 华为手机怎么下载linux命令,在linux命令
  6. PROTEUS元件库元件称呼 .
  7. MySQL性能调优与架构设计-架构篇
  8. Hibernate知识点总结
  9. 简书UI易用性缺陷:投稿按钮太小
  10. Android Room联合AsyncListUtil实现RecyclerView分页加载ORM数据
  11. CMU Bomblab 答案
  12. python md5加密_python中的md5加密
  13. plsql 查看表空间使用情况
  14. 10000字拆解:五个美妆新品牌私域背后的数据和逻辑
  15. 如何知道计算机显卡内存,如何查看显卡显存_如何查看显卡显存占用
  16. 拒酒词,社交必备!!!
  17. 微信公众号排版的使用
  18. STM32三种BOOT模式介绍
  19. Android 7.0配置fileprovider共享文件 解决FileUriExposedException
  20. 如何检验计算机主板的好坏,怎么判断笔记本主板、CPU硬件好坏? 查看电脑配置的教程...

热门文章

  1. [四校联考P3] 区间颜色众数 (主席树)
  2. Maven+struts2+spring4+hibernate4的环境搭建
  3. Java去除掉HTML里面所有标签的两种方法——开源jar包和自己写正则表达式
  4. Leetcode: Multiply Strings
  5. SQL server 2012 如何取上个月的最后一天
  6. Asp.Net中判断是否登录,及是否有权限?
  7. 从今天开始用上了液晶显示器,总算对得起自己的眼睛了。感谢!
  8. centos 7 yum 安装 MongoDB 4.2
  9. vue main.js中引入js_web前端的同学不容错过,大厂Vue最佳实践总结,提高竞争力...
  10. zcmu4959: ly的新闹钟(有个点容易忽略)