sql - MAX() 函数返回所选列的最大值,但 SELECT MAX(A) FROM t WHERE a>1000 返回 NULL 为什么?
问题描述
表 T 存在单列 A,其中有 4 行的值 - 100、200、NULL、300。
以下查询的输出是什么?
SELECT MAX(A) FROM t WHERE a>1000;
选项包括:
- 300
- 无效的
- 没有行
- 抛出错误
正确答案是NULL。我的解释是查询应该返回 No rows 但正确的答案是 NUll。
有人可以解释一下吗?
解决方案
WHERE
条件不满足表中的任何行,所以
select a
from t
where a > 1000;
不返回任何行。
然而,“无”的最大值是NULL
。
在 SQL 中,NULL
是缺少信息。当数据库找不到数据时,这是自然的选择。
max()
像, min()
or的聚合count()
如果不使用GROUP BY
推荐阅读
- c# - 用户输入确认
- php - 无法在 wordpress 主题上加载自定义 CSS
- scala - 如何找到 Spark RDD 的平均值?
- angular - 通过 highchart-angular 模板调用方法
- c++ - 从引用类型在 lambda 中捕获的值的类型,不使用广义捕获
- php - 在 PHP 中使用正则表达式增加一个计数器
- ios - Cybersource IOS SDK 与 PHP
- java - Spark Java API中两行之间的区别
- ios - Thread1:使用 Stripe 的 pushPaymentMethodsViewController() 时的 SIGABRT
- ajax - 仅当它是 ajax 调用时才授权表单请求