作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在 DB2 中运行的查询
select yrb_customer.name,
yrb_customer.city,
CASE count(*) WHEN 0 THEN 0 ELSE count(*) END as #UniClubs
from yrb_member, yrb_customer
where yrb_member.cid = yrb_customer.cid and yrb_member.club like '%Club%'
group by yrb_customer.name, yrb_customer.city order by count(*)
向我显示属于其中包含“俱乐部”一词的俱乐部的人,并显示他们所属的俱乐部数量 (#UniClubs
) 以及他们的姓名和所在城市。然而,对于不属于此类俱乐部的学生,我仍然希望他们出现,但只有 0,而不是被隐藏,这就是现在正在发生的事情。我无法使用 count(*)
获得此功能。有人可以阐明一下吗?如果以上内容不够清楚,我可以进一步解释。
最佳答案
我不熟悉 DB2,所以我在黑暗中尝试,但试试这个:
select yrb_customer.name,
yrb_customer.city,
CASE WHEN yrb_member.club like '%Club% THEN count(*) ELSE 0 END as #UniClubs
from yrb_member, yrb_customer
where yrb_member.cid = yrb_customer.cid
group by yrb_customer.name, yrb_customer.city order by count(*)
基本上您不想在 WHERE 子句中过滤 %Club%,因为您希望返回所有行。
关于sql - 如何显式显示 count(*) 等于 0 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15889305/
我是一名优秀的程序员,十分优秀!