我是SQL的新手,正试图解决有关SQLzoo的问题
选择代码,以显示GDP高于非洲任何国家的国家(某些国家的gdp值可能为NULL)。
我对这个问题的回答是
SELECT name FROM bbc
WHERE gdp > ALL (SELECT gdp
FROM bbc
WHERE region = 'Africa'
AND gdp<>NULL)
但是网站上的正确答案是
SELECT name FROM bbc
WHERE gdp > (SELECT MAX(gdp)
FROM bbc
WHERE region = 'Africa')
我不明白为什么我选择的答案是错误的
答案 0 :(得分:1)
您选择的> all (...)
解决方案存在的问题是某些gdp值为空。
当您将非null值与null进行比较时,结果为null,除非您使用null安全的运算符,例如is null
。