我有以下SQL查询:
SELECT
name
FROM
world
WHERE
gdp > ALL (SELECT gdp FROM world WHERE continent = 'Europe')
我在sqlzoo运行此查询,以查找GDP高于欧洲各国的国家/地区。
预期结果是美国,中国。 ALL
关键字应该使>
在列表上工作。在这种情况下它不会。为什么呢?
答案 0 :(得分:1)
它至少可以用于MySQL。但是你也必须排除欧洲拥有无效GDP的国家:
SELECT
name
FROM
world
WHERE
gdp > ALL (SELECT gdp FROM world WHERE continent = 'Europe' and gdp is not null)
答案 1 :(得分:0)
为了达到预期的效果,你必须尝试这样的事情: -
SELECT name
FROM world
WHERE gdp > ALL (SELECT MAX(gdp)
FROM bbc
WHERE contintent = 'Europe'
AND gdp IS NOT NULL)
如果没有国家/地区的GDP为NULL
,那么您只需删除IS NULL
cond。
希望这可以帮到你。