我有一个包含学生信息表的数据库。 (学生们)。在其他领域(LastName,FirstName和Gender等)中,它包含一个用于高中GPA的字段和另一个用于College GPA的字段。我被要求只在报告中显示其中一个GPA字段。我想在select语句中创建一个子查询,只显示1个GPA值。有些学生同时拥有高中和大学GPA,而其他学生只有一个。对于已列出两者的人,我希望展示大学GPA。
我将如何做到这一点?
答案 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
如果这不起作用,请发布您的数据库架构和一些示例数据。