该问题的解决方法是使用 COALESCE 函数。COALESCE 函数返回参数列表中第一个非 NULL 表达式的值。我们可以使用此函数将 NULL 值替换为其他值,然后再进行 Group by 或 where 操作。
例如,我们有一个包含 Null 值的表格:
name | age | city |
---|---|---|
John | 25 | NULL |
Amy | 30 | Paris |
Peter | 25 | Paris |
Jack | 30 | NULL |
如果我们要按城市进行 Group by 并查询所有城市为 Paris 的记录,我们可以使用以下 SQL 查询:
SELECT city, COUNT(*) FROM table
WHERE COALESCE(city, 'Paris') = 'Paris'
GROUP BY COALESCE(city, 'Paris');
此查询将 NULL 值替换为“Paris”,然后按城市进行 Group by,并且仅返回城市为“Paris”的记录。结果将是这样的:
city | COUNT(*) |
---|---|
Paris | 2 |
这种方法不仅适用于 Group by 和 where,也适用于其他需要处理 NULL 值的查询。