【发布时间】:2021-09-27 22:36:30
【问题描述】:
我期待相同的输出,但是当我单独运行它们时,得到不同的输出,有人可以解释一下不同之处吗?谢谢!
第一个是:
SELECT * FROM Products
WHERE Price > 20
第二个是:
SELECT * FROM Products
WHERE Price > SOME (SELECT Price FROM Products WHERE Price > 20);
【问题讨论】:
-
只考虑一行的情况,价格 = 21。
-
“去商店买一条面包。如果他们有鸡蛋,买 6 个”。当被问到为什么我带着 6 条面包回家时,我说“他们有鸡蛋”
-
写成
SELECT * FROM products WHERE price > (SELECT MIN(price) FROM products WHERE price > 20)会不会更清楚?找出大于 20 的最低价格,然后找出所有大于该最低价格的产品? “查找所有价格大于 20 的产品”是不同的 -
感谢您的 cmets。桌子没有,价格 20
21。但是,第一个返回 37 条记录,而第二个返回 35 条记录 -
好的,那么缺少哪 2 行,它们的价格是多少?另外,花了一段时间才找到它,但是:bradsruminations.blogspot.com/2009/08/… - 为什么我们不使用 ALL/ANY ;)