学习IFNULL()函数 非空判断

解析

IFNULL(expression1, expression2)

如果expression1为null, 在函数返回expression2,否则将返回expression1。

而expression1可以为sql语句,expression2同样可以为sql语句,不是只能返回null

举例子说明

需求:第二高薪水

编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。

+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。

+---------------------+
| SecondHighestSalary |
+---------------------+
| 200 |
+---------------------+

--  解析SQL:查询非空判断(查询没有值,返回null)别名 SecondHighestSalary
-- 解析内置查询: select查询 distinct是忽略Salary 字段中包含重复数据的记录 form 表为 Employee order by排序 salary字段 desc升序 limit分页 开始1,结束1 也就是说只要第二条数据
select IFNULL((select distinct Salary from Employee order by salary desc limit 1,1),null)as SecondHighestSalary

  

扩展NULLIF ()函数  比较是否相等

解析

NULLIF(expression1, expression2)

如果两个参数等价,则返回NULL ;否则,返回第一个参数。

举例子说明

例如

mysql> select NULLIF(1,2);
+-------------+
| NULLIF(1,2) |
+-------------+
| 1 |
+-------------+
1 row in set (0.00 sec)

两个参数不相等,所以结果是第一个参数1。

再例如,

mysql> select NULLIF(1,1);
+-------------+
| NULLIF(1,1) |
+-------------+
| NULL |
+-------------+
1 row in set (0.00 sec)

两个参数相等,所以结果是NULL。

最新文章

  1. 黄聪:微信支付错误两个问题的解决:curl出错,错误码:60
  2. 简单的dp
  3. Android gdb 调试
  4. SQL Server 2012 使用警报调度数据库作业通知操作员
  5. 初探 performance – 监控网页与程序性能
  6. 简单通用JDBC辅助类封装
  7. CI 同时上传多个图片
  8. Linux运行变量中的命名脚本
  9. AD管理命令
  10. 自定义视图(继承View)
  11. BufferedStream类 - 缓冲流
  12. NodeJS stream 一:Buffer
  13. 某种数列问题 (一场欢乐赛的T2)
  14. Jenkins:基于linux构建ivy项目
  15. Chapter 1 Securing Your Server and Network(12):保护链接服务器
  16. python学习5---实现凸包
  17. Python:Day17 生成器、time和random模块
  18. 如何在IIS上发布网站 在阿里云服务器windows server2012r iis上部署.net网站
  19. 24种java设计模式总结和目录
  20. nginx启动常遇到的问题

热门文章

  1. IEnumerable< T >和IEnumerable区别 |枚举接口
  2. java ssh远程服务器并执行多条shell命令
  3. Java 实现Https访问工具类 跳过ssl证书验证
  4. 网络爬虫深究-初识HTTP和https常识
  5. js 数组/对象/日期的浅克隆
  6. 基于NET 6.0 封装的 Fast.Framework
  7. php 23种设计模型 - 状态模式
  8. 被广泛使用的OAuth2.0的密码模式已经废了,放弃吧
  9. 基于Zookeeper的分布式锁(干干干货)
  10. CF877F题解