子选择以在列或其他列上显示

时间:2013-06-17 18:42:03

标签: sql subquery multiple-columns

我有一个包含学生信息表的数据库。 (学生们)。在其他领域(LastName,FirstName和Gender等)中,它包含一个用于高中GPA的字段和另一个用于College GPA的字段。我被要求只在报告中显示其中一个GPA字段。我想在select语句中创建一个子查询,只显示1个GPA值。有些学生同时拥有高中和大学GPA,而其他学生只有一个。对于已列出两者的人,我希望展示大学GPA。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:0)

这是完成它的一种方法。使用案例陈述。仅当您有HighSchool的列和同一行数据的College列时才会这样。

SELECT
x.Name
, x.GPA
, ISNULL(CollegeGPA, HighSchoolGPA) [GPA]
, CASE WHEN CollegeGPA IS NOT NULL
             THEN 'College'
             ELSE 'HighSchool'
             END [Type Of GPA]
FROM Data

如果这不起作用,请发布您的数据库架构和一些示例数据。