http://www.sqlzoo.net/wiki/SELECT_wit...
第6题给的答案是:
SELECT continent, name, population FROM world x
WHERE population >= ALL
(SELECT population FROM world y
WHERE y.continent=x.continent
AND population>0)
population>0有什么含义,而且加上和不加上的查询结果不同。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
我去看了那个网站,里边有一个数据的population的值为null。
我理解的null与任何值比较都是False,所以:
当没有population>0语句时,子查询会将包含null的结果,那么最后的ALL会返回False,所以少一条结果。
当有population>0时,子查询的结果将不包含null结果,所以最后将得出正确的结果。