根据不同的列值从一列中选择值

NWi*_*kie 1 sql db2

我在这里简明扼要地陈述我的问题,所以我只想举个例子.
假设我有一个关于学生的DB2表:

Name           Class          Grade
Billy J        Econ           A
Sarah S        Maths          B
Greg X         Computes       A-
Billy J        Maths          D
Greg X         Maths          C+
Run Code Online (Sandbox Code Playgroud)

我想要检索那些同时拥有经济和数学的学生,并以这种方式显示信息:

Name       Maths Grade       Econ Grade
Billy J    D                 A
Run Code Online (Sandbox Code Playgroud)

我怎么能在世界上做到这一点?

Lar*_*tig 5

此解决方案将解决您命名的两个类的问题:

SELECT Name, Math.Grade AS MathsGrade, Econ.Grade AS EconGrade
  FROM Students Math INNER JOIN Students Econ ON Math.Name = Econ.Name
  WHERE Math.Class = 'Maths' AND Econ.Class = 'Econ'
Run Code Online (Sandbox Code Playgroud)

此解决方案唯一不做的是包含派生列名称中的空格.您可以通过编写Maths Grade以及Econ GradeDB2用于标识符引号的任何字符来完成此操作.

要包括在内,学生必须同时拥有数学和经济等级.