在SQL中,如何根据特定条件选择要选择的表?

时间:2017-03-18 01:43:09

标签: sql sql-server

我需要帮助来回答http://www.sql-ex.ru/learn_exercises.php#answer_ref中的练习74。

使用的数据库表是:

  • 班级(班级,类型,国家,号码,号码,位移)

问题是:

  • 获取俄罗斯的所有船级。如果数据库中没有俄罗斯船舶类,则显示数据库中存在的所有国家/地区的类。 结果集:country,class。
  • 我知道如何获得俄罗斯的所有船级。
  • 我知道如何获得除俄罗斯之外的所有船舶类别。

我能想到解决问题的方法是使用(表A)选择语句来获取俄语类,然后使用(表B)选择语句来获取非俄语类,然后选择要从中选择的表...

但我不知道使其执行以下操作的语法: 如果俄罗斯存在于(类)中,则从(表A)中选择,如果不存在,则从(表B)中选择。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我最终搞清楚了,并且能够看到更清晰的答案。我找到的最干净的答案如下:

  • SELECT country,class FROM Classes WHERE country =' Russia'
  • UNION
  • 选择国家/地区,班级
  • FROM classes
  • 在哪里'俄罗斯' NOT IN(选择国家/地区)

"在哪里'俄罗斯' NOT IN(从课程中选择国家)"是我在寻找的。