为什么ALL关键字在此查询中不起作用?

时间:2014-06-12 06:26:52

标签: mysql sql

我有以下SQL查询:

SELECT 
    name
FROM 
    world
WHERE
    gdp > ALL (SELECT gdp FROM world WHERE continent = 'Europe')

我在sqlzoo运行此查询,以查找GDP高于欧洲各国的国家/地区。

预期结果是美国,中国。 ALL关键字应该使>在列表上工作。在这种情况下它不会。为什么呢?

2 个答案:

答案 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。

希望这可以帮到你。