mysql - SQL如何处理值为0的空表?

标签 mysql sql sql-server oracle sqlite

大家好,我正在尝试使用名为 Nobel 的表来解决此问题,该表具有(yr,subject)列

该问题的答案如下 选择显示未颁发医学奖的年数的代码

SELECT COUNT(DISTINCT yr) FROM nobel
   WHERE yr NOT IN (SELECT DISTINCT yr FROM nobel WHERE subject = 'Medicine')

但是,我的问题是,如果每年都给予药物,这意味着我们的查询

SELECT COUNT(DISTINCT yr) FROM nobel WHERE yr NOT IN(....)

会从空表中进行选择,那么不是返回0,而是报错,那么这种情况该如何处理呢?

非常感谢!

最佳答案

可以使用mysql的IFNULL()

SELECT IFNULL(COUNT(DISTINCT yr), 0) FROM nobel WHERE yr NOT IN(....)

关于mysql - SQL如何处理值为0的空表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43226306/

相关文章:

mysql - 如何在 MySQL 中导入使用 `NULL` 关键字编码的日期时间字段?

mysql - 仅选择冗余行,而不选择原始行

sql - plpgsql 语法错误

sql - 如何不插入具有空值的双记录

php - SQL - 如果该行不存在,则插入行并从其他行选择

c++ - 如何在 C++ 中使用 MySQL 日期?

php - SQL 子查询或 JOIN

sql-server - 打开或创建数据库图表后 SQL Server Management Studio 崩溃

php - 如何为按名称上传文件制作区分大小写的代码

SQL 在 1 个查询中插入具有不同 ID 的相同值