mysql - MYSQL数据库查询-reg
问题描述
select regno, SUM(IF(subjectcode='MA8402',mark,'A'))AS PQT,
SUM(IF(subjectcode='CS8491',mark,'A'))AS CA,
SUM(IF(subjectcode='CS8492',mark,'A'))AS DBMS,
SUM(IF(subjectcode='CS8451',mark,'A'))AS DAA,
SUM(IF(subjectcode='CS8493',mark,'A'))AS OS,
SUM(IF(subjectcode='CS8494',mark,'A'))AS SE FROM testmark where testid=1
group by regno
很少有学生特别缺席测试我输入的值是'A'但是在显示答案时我得到'A'的行值的查询结果'0',如何打印A而不是'0'
示例根据 testmark 表中的 mysql 值
Regno subjectcode Mark
101 MA8491 A
101 CS8491 A
101 CS8492 A
101 CS8451 A
101 CS8493 A
101 CS8494 A
当应用上面的 sql 查询时,我得到了类似的答案
Regno PQT CA DBMS OS DAA SE
101 0 0 0 0 0 0
预期结果是,
regno PQT CA DBMS DAA OS SE
101 A A A A A A
解决方案
您可以使用 ifnull 将“A”分配给缺席
select regno,
MAX(ifnull(IF(subjectcode='MA8402',mark,'A'),'A')) AS PQT,
MAX(ifnull(IF(subjectcode='CS8491',mark,'A'),'A')) AS CA,
MAX(ifnull(IF(subjectcode='CS8492',mark,'A'),'A')) AS DBMS,
MAX(ifnull(IF(subjectcode='CS8451',mark,'A'),'A')) AS DAA,
MAX(ifnull(IF(subjectcode='CS8493',mark,'A'),'A')) AS OS,
MAX(ifnull(IF(subjectcode='CS8494',mark,'A'),'A')) AS SE
FROM testmark
where testid=1
group by regno
(并且您可以使用 MAX 代替 sum .. 字符串的总和不正确)
推荐阅读
- android - Firebase App Distribution 和 Google play 安全签名
- flutter - 如何在 Flutter 中将列表视图中的项目从一个类添加到另一个类?
- javascript - 如何在不同的 .js 文件上跨反应应用程序共享变量?
- r - 安装后无法加载 R 包
- rust - 我怎么说某个功能仅在给定平台上可用
- git - 如何从与以前不同的路径将新文件添加到现有的 github-repository
- go - 如何使用监听服务实现 pub/sub google
- verilog - 我正在 Verilog 中构建 ALU,而我的自检测试台不断收到这个持续的蓝色错误?
- html - 使用百分比的宽度不适用于内部 div
- python - 如何将python代码中的字符串链接到kivy文件中的标签