SQLZOO - 从世界教程中选择 #13

新手上路,请多包涵

http://sqlzoo.net/wiki/SELECT_from_WORLD_Tutorial#All_the_vowels

赤道几内亚和多米尼加共和国的名称中包含所有元音 (aeiou)。它们不算数,因为它们的名称中有多个单词。

找到名称中包含所有元音且没有空格的国家/地区。您可以使用短语名称 NOT LIKE ‘%a%’ 从结果中排除字符。

显示的查询缺少像巴哈马和白俄罗斯这样的国家,因为它们至少包含一个“a”

我认为我可以使用更多嵌套许多 OR 语句的蛮力方法来做到这一点,但这没有用,而且我不确定如何排除空间出现。

原文由 madman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

如何排除空间

AND NOT LIKE '% %'

原文由 ChrisG 发布,翻译遵循 CC BY-SA 3.0 许可协议

SELECT name FROM world
WHERE name LIKE '%a%'
AND name LIKE '%e%'
AND name LIKE '%i%'
AND name LIKE '%o%'
AND name LIKE '%u%'
AND name NOT LIKE '% %'

  • 使用 AND,而不是 OR,因为您需要所有元音,而不是其中任何一个。
  • ’%a%’ 表示其中包含字符 ‘a’ 的任何字符串组合。所以你需要为所有的元音做这件事。
  • NOT LIKE ‘% %’ 意味着我们的字符串中不需要任何空格。这意味着它不包括名称中包含多个单词的国家/地区。
  • 正确答案是 莫桑比克。只有一个名字符合这个标准。
  • 如果您删除代码的最后一行, 并命名 NOT LIKE ‘% %’ ,您将得到 刚果民主共和国、赤道几内亚、莫桑比克、多米尼加共和国 作为答案。试试看 !希望能帮助到你 !!

原文由 Sumit Pokhrel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题