为了账号安全,请及时绑定邮箱和手机立即绑定

如果其中一个表包含 mysql 中的单词或字符串,如何不显示任何内容?

如果其中一个表包含 mysql 中的单词或字符串,如何不显示任何内容?

PHP
qq_笑_17 2021-06-16 19:15:25
这是我第一次来这里。所以正如标题所暗示的那样,我有这个代码可以添加、计算、显示学生的所有成绩作为一般平均如果其中一列包含字符串,例如“D”或删除,我试图不显示成绩的一般平均值。但我不知道如何。SELECT (         SELECT ROUND(AVG(grades_avg))         FROM grades         WHERE studentid = 20160001        AND grades.schoolyearseq_id = 20162017         AND grades.semseq_id = 201620171         ) AS average");所以任何帮助将不胜感激。谢谢你更新 1嗨,伙计们,抱歉花了我很长时间才更新……我尝试实现你们悲伤地提出的答案/评论,查询仍然会输出一个数字。上面的查询将计算“D”或删除为“0”或零。下面的查询将计算但会忽略“D”我还附上了下面的图片一旦我破解了这个东西,我会尝试更新你们。谢谢
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

您是否尝试过添加 WHERE?


WHERE grades.grades_avg NOT IN ('D', 'dropped')

所以它看起来像:


SELECT (SELECT ROUND(AVG(grades_avg)) 

FROM grades 

WHERE studentid = 20160001

AND grades_avg NOT IN ('D', 'dropped')

AND grades.schoolyearseq_id = 20162017 

AND grades.semseq_id = 201620171 

    ) AS average");


查看完整回答
反对 回复 2021-06-19
?
holdtom

TA贡献1805条经验 获得超10个赞

试试下面的 CASE 语句:


SELECT

CASE

    WHEN grades_avg = 'D' OR grades_avg = 'dropped' THEN ' '

    ELSE ROUND(AVG(grades_avg))

END AVERAGE

FROM grades

WHERE studentid = 20160001

AND grades.schoolyearseq_id = 20162017

AND grades.semseq_id = 201620171;


查看完整回答
反对 回复 2021-06-19
  • 3 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信