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结果,所以最后将得出正确的结果。
欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。 温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。