首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL -不拉取最大值时的最大情况?

SQL -不拉取最大值时的最大情况?
EN

Stack Overflow用户
提问于 2020-04-16 23:16:51
回答 1查看 29关注 0票数 0

我的问题是:

一个学生可以注册多个英语课程。我需要把这个学生的英语最高分拉出来。

一个特定的学生注册了两门英语课程。一个叫英语8,另一个叫读写8。

在英语8中,这个学生得了82分。在读/写8中,学生得了100分。

下面的代码返回82,我希望它返回100。

max(case when (B.CREDIT_TYPE = 'ENG' or D.SCHED_DEPARTMENT = 'ENG' or B.COURSE_NAME LIKE '%Integrated%' or B.CREDIT_TYPE = 'ENL' or D.SCHED_DEPARTMENT = 'ENL') then B.GRADE end) English

我想我不知道当前的代码是如何工作的。两门课程的学分类型和sched_department都是英语。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-16 23:19:33

您的GRADE可能是一个字符串而不是一个数字。如果是这种情况,您可以转换它。假设所有值都是数字,您应该修复数据以将其存储为数字:

代码语言:javascript
复制
alter table t alter grade decimal(5, 2) -- or whatever type is appropriate

同时,您可以在查询中对其进行转换:

代码语言:javascript
复制
then 0 + B.Grade

请注意,如果Grade不总是数字,这可能会在某些数据库中返回类型转换错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61253832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档