首页 > 解决方案 > 哪个逻辑运算符将返回较小的数据集?

问题描述

选择以下所有将导致数据集小于未使用逻辑运算符的查询的子句。

  1. 其中价格 = 10 且库存 > 0;
  2. 其中价格 = 10 或价格 = 20;
  3. 没有价格 = 10;
  4. 价格为空;

正确答案是#1 和#4。我知道#3 是错误的,因为原始数据集可能没有价格为 10 的商品。在这种情况下,带有 #3 子句的查询将产生相同的数据集。

但为什么#2 是假的?

标签: sql

解决方案


问题措辞不佳。

2 是错误的,因为一个查询WHERE price=10 OR price=20返回两个价格的记录,这可能比WHERE price=10单独的记录更多。

但是也很容易将“不使用逻辑运算符”的要求解释为“根本没有 WHERE 子句”,这样会产生更多的记录。选项#4 鼓励这种解释,它也有效地删除了整个 WHERE 子句。


推荐阅读