mysql - 从类型 'DBNull' 到类型 'Double' 的转换无效

标签 mysql sql asp.net vb.net

在我的代码中,我理解查询获取空值并抛出此错误。但是由于我的查询有点复杂,我不明白如何检查空值并避免此错误。请帮助我更正此查询。

SELECT (SUM(charges) + SUM(behaviour) + SUM(admission) + SUM(properInformation) + SUM(hygine) + SUM(treatment))/(count(doctorID) * 6) AverageRating, COUNT(ID) RatingCount from ratings where doctorID = '" + doctorID + "'

最佳答案

如果您希望查询不返回NULL,您可以用IFNULL 包围表达式,将可能的NULL 转换为0,例如;

SELECT IFNULL((SUM(charges) + SUM(behaviour) + SUM(admission) + 
               SUM(properInformation) + SUM(hygine) + SUM(treatment))
              /(count(doctorID) * 6), 0) AverageRating, 
       COUNT(ID) RatingCount 
FROM ratings 
WHERE doctorID = '" + doctorID + "'

关于mysql - 从类型 'DBNull' 到类型 'Double' 的转换无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36092606/

相关文章:

mysql - 带有表变量和返回值输出的动态 SQL

asp.net - 在 IdentitySer4 资源服务器实现中调用 .ProtectKeysWithCertificate(cert) 方法时出错

javascript - 在网格内设置文本框值

php - 如何从 URL 获取变量并插入数据库

mysql - Select From 从查询中动态获取的表名

mysql - 使用匹配的键将多个值从一个表更新到另一个表

mysql - SQL 内部查询语法

mysql - 资金过期追踪

sql - BigQuery COALESCE/IFNULL 类型与文字不匹配

c# - Xpath 抓取链接节点之间的单独文本