You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebird 2.5 SQL查询:展示Events表缺失的Customers记录并补0

解决Firebird 2.5中展示所有客户并补全缺失事件数量的问题

嘿,这个需求在Firebird 2.5里很好实现,我们可以通过左连接配合COALESCE函数来达成目标,既能保留所有客户记录,又能把缺失的数量补成0。

核心思路

用LEFT JOIN关联Customers和Events表,这样Customers里的所有姓名都会被保留,哪怕Events里没有对应的记录;再用COALESCE把关联后返回的NULL值替换成0,就正好满足你的展示需求。

完整SQL代码

SELECT 
    c.NAME,
    COALESCE(e.QUANTITY, 0) AS QUANTITY
FROM 
    Customers c
LEFT JOIN 
    Events e ON c.NAME = e.NAME
ORDER BY 
    c.NAME;

代码细节说明

  • LEFT JOIN Events e ON c.NAME = e.NAME:左连接会确保Customers表的每一条记录都出现在结果里,不管Events有没有匹配的姓名。如果没有匹配,e.QUANTITY会是NULL。
  • COALESCE(e.QUANTITY, 0):这个函数的作用是返回第一个非NULL的值,所以当e.QUANTITY为NULL时,就会返回0,完美填补缺失的数量。
  • ORDER BY c.NAME:这一步是可选的,只是为了让结果和你给出的预期输出排序一致,如果你不需要特定顺序可以去掉。

执行结果

运行上面的SQL后,会得到你想要的结果:

NAME   | QUANTITY
-------+----------
Chris  | 2
Tom    | 4
John   | 0

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:05:30